March 25, 202610 min read

How to Type Hindi in WordPress — Blog Posts and Multilingual Sites

How to write Hindi blog posts in WordPress — editor input, transliteration plugins, multilingual site setup, font configuration, and SEO for Hindi content.

wordpress hindi blogging cms multilingual
Ad 336x280

WordPress powers a significant chunk of Hindi-language websites — news portals, literary magazines, personal blogs, government information sites, educational platforms. If you're setting up or contributing to a Hindi WordPress site, there are some things worth getting right from the start. The typing part is actually easy. The configuration — fonts, encoding, SEO, multilingual setup — is where the real decisions are.

I've set up a handful of Hindi WordPress sites and migrated content to them. Here's everything I've learned, starting from the basic "how do I get Hindi text into the editor" all the way to multilingual architecture.


Typing Hindi in the WordPress Editor

Block Editor (Gutenberg)

WordPress's default block editor fully supports Hindi. There's nothing special to configure in WordPress itself — the editor renders whatever Unicode text you give it.

Using system keyboard:
  1. Set up Hindi input on your computer (Windows: Settings → Time & Language → Add Hindi)
  2. Open the WordPress editor for a post or page
  3. Click in a Paragraph, Heading, or List block
  4. Switch to Hindi input (Win + Spacebar on Windows, Ctrl + Spacebar on Mac)
  5. Type — Hindi text appears in the block
  6. Switch back to English when needed
Using transliteration (paste method):
  1. Open transliterate.in in another tab
  2. Type your content in English phonetically
  3. Copy the Hindi output
  4. Paste into the WordPress editor block
The paste method is what I recommend for longer articles. You can draft the entire Hindi content in the transliteration tool, review it, then paste into WordPress. The block editor handles pasted Hindi text without any issues — formatting, headings, lists all work normally.

Classic Editor

If you're using the Classic Editor plugin, Hindi input works the same way. Switch your system keyboard or paste from a transliteration tool. The TinyMCE editor that powers Classic Editor supports Unicode text natively.

WP Admin Language

You can set the WordPress admin interface itself to Hindi:


  1. Go to Settings → General

  2. Under Site Language, select हिन्दी

  3. Save


This changes all admin menus, buttons, and labels to Hindi. Some plugins may not have Hindi translations, so their settings pages will remain in English.


Fonts for Hindi in WordPress

The default WordPress themes (Twenty Twenty-Four, Twenty Twenty-Three, etc.) use system font stacks that include Devanagari-capable fonts. Hindi text generally renders fine out of the box.

But "fine" and "good" are different things. For a site where Hindi is the primary language, you want a font that's optimized for Devanagari readability.

Noto Sans Devanagari — clean, modern, multiple weights. Available from Google Fonts. My top recommendation for Hindi blog body text. Noto Serif Devanagari — if your site has a traditional or literary aesthetic. Serif fonts are less common for Hindi websites but look elegant for poetry, literary criticism, or long-form essays. Tiro Devanagari Hindi — another serif option from Google Fonts. Beautiful for headings. Poppins — the Devanagari version is available on Google Fonts. Popular in modern web design.

Adding Google Fonts to WordPress

Method 1: Theme Customizer — Many themes have a typography section where you can select Google Fonts. Check Appearance → Customize → Typography. Method 2: Plugin — Install the "Fonts Plugin | Google Fonts Typography" plugin. It lets you select any Google Font and apply it to headings, body text, or navigation. Method 3: Manual (via functions.php):
function load_hindi_fonts() {
    wp_enqueue_style(
        'google-fonts-hindi',
        'https://fonts.googleapis.com/css2?family=Noto+Sans+Devanagari:wght@400;500;700&display=swap',
        array(),
        null
    );
}
add_action('wp_enqueue_scripts', 'load_hindi_fonts');

Then in your CSS:

body {
    font-family: 'Noto Sans Devanagari', sans-serif;
}

Font Size for Hindi

Devanagari is denser than Latin text. If your English body text is 16px, Hindi body text at 17-18px will have equivalent readability. Line height should be generous — 1.7 to 1.8 for Hindi body text versus the typical 1.5-1.6 for English.


Hindi URL Slugs

WordPress supports Hindi in URL slugs (post permalinks):

yoursite.com/कंप्यूटर-की-स्पीड-बढ़ाएं/

But I'd recommend against pure Hindi slugs for a few reasons:


  • They get URL-encoded in many contexts (turning into long strings of %E0%A4%95... characters)

  • Sharing encoded URLs on social media looks ugly and reduces click trust

  • Some analytics tools and ad platforms handle encoded URLs poorly


Better approach: Use transliterated English slugs for Hindi posts:
yoursite.com/computer-ki-speed-kaise-badhaye/

This is readable, shareable, and doesn't break any tools. The post content and title remain in Hindi; only the URL uses Roman characters.


Hindi SEO in WordPress

Yoast SEO / Rank Math

Both major SEO plugins work with Hindi content:

  1. Write your SEO Title in Hindi (or bilingual)
  2. Write your Meta Description in Hindi
  3. Set the Focus Keyword — both plugins accept Hindi keywords
  4. Yoast and Rank Math will analyze readability and keyword usage for Hindi text
One limitation: the readability analysis (Flesch reading score, sentence length suggestions) is calibrated for English. Hindi text will always score differently. Focus on keyword analysis rather than readability scores.

Hindi Keywords Research

Research Hindi search terms using:


  • Google Keyword Planner — supports Hindi keywords in Devanagari

  • Google Search Console — shows actual Hindi queries that lead to your site

  • Google Autocomplete — type a Hindi phrase in Google search and see suggestions

  • AnswerThePublic — sometimes surfaces Hindi question patterns


Target both Devanagari (कंप्यूटर रिपेयर) and romanized Hindi (computer repair kaise kare) in your content and meta tags.

hreflang Tags

If you have both Hindi and English versions of pages, implement hreflang tags to tell Google which version to show to which audience:

<link rel="alternate" hreflang="hi" href="https://yoursite.com/hi/page/" />
<link rel="alternate" hreflang="en" href="https://yoursite.com/en/page/" />

Multilingual plugins like WPML and Polylang handle this automatically.


Building a Multilingual WordPress Site (Hindi + English)

If your site needs both Hindi and English content, there are several architectural approaches.

Option 1: WPML Plugin

WPML (WordPress Multilingual) is the most established multilingual plugin:

  1. Install WPML
  2. Set English as the default language, add Hindi
  3. For each post, create a Hindi translation
  4. WPML adds a language switcher to your site
  5. Each language version gets its own URL: /en/post-slug/ and /hi/post-slug/
Cost: WPML is a paid plugin. Starting around $39/year.

Option 2: Polylang (Free)

Polylang is a free alternative:

  1. Install Polylang
  2. Add Hindi and English as site languages
  3. Create posts in each language and link translations together
  4. Polylang adds a language switcher widget
Polylang is lighter than WPML and handles most use cases well. For a Hindi-English blog, it's usually sufficient.

Option 3: TranslatePress

TranslatePress takes a different approach — instead of creating separate posts, you translate content directly on the frontend:

  1. Install TranslatePress
  2. Visit any page on your site
  3. Click "Translate Page" in the admin bar
  4. A visual editor lets you click on any text element and add the Hindi translation
  5. Both versions live in the same post
This is the easiest approach for sites with lots of static content (pages, menus, widgets) that needs translation. Less ideal for blogs with many posts.

Option 4: Separate WordPress Installations

For large sites with dedicated Hindi and English editorial teams:


  • hi.yoursite.com (Hindi WordPress)

  • en.yoursite.com (English WordPress)

  • Or yoursite.com/hi/ and yoursite.com/en/ as separate WP installations in subdirectories


More complex to manage but gives complete independence to each language team.


Writing Hindi Blog Posts — Practical Workflow

Here's the workflow I use for Hindi WordPress content:

1. Content Drafting

I don't draft directly in WordPress. Instead:

  1. Open transliterate.in and Google Docs side by side
  2. Draft the article structure (headings, key points) in English
  3. For each section, type the Hindi content phonetically in the transliteration tool
  4. Copy Hindi text into Google Docs for a running draft
  5. Review the complete Hindi article in Docs

2. Paste into WordPress

  1. Open the WordPress editor
  2. Add Heading blocks for section titles
  3. Paste Hindi content from Google Docs into Paragraph blocks
  4. Format as needed — bold, italic, links, lists

3. Images and Media

Alt text for images should be in Hindi if the post is Hindi:

Alt text: कंप्यूटर की मेमोरी बढ़ाने का तरीका

This helps with Hindi image search SEO.

4. SEO Metadata

Fill in the Hindi SEO title, description, and focus keyword using your SEO plugin.

5. Review and Publish

Preview the post to verify Hindi text renders correctly on the theme. Check mobile preview too — Hindi text on narrow screens sometimes has line-breaking issues.


WordPress Theme Considerations for Hindi

RTL Support (Not Needed)

Hindi is a left-to-right (LTR) script, so you don't need RTL theme support. This is a common misconception — RTL is for Arabic, Hebrew, and Urdu. Hindi, Tamil, Bengali, and other Indian scripts are all LTR.

Text Width

Hindi paragraphs need slightly wider content areas than English. If your theme has a max-width of 680px for content (common for reading-optimized themes), Hindi text might feel cramped. Consider increasing to 720-750px, or leave it as-is if the theme already uses responsive width.

WordPress menus support Hindi text. When creating menu items:


  1. Appearance → Menus

  2. Add pages or custom links

  3. Set the Navigation Label in Hindi: मुख्य पृष्ठ, हमारे बारे में, संपर्क


Test the menu on mobile — Hindi menu items might wrap differently than English ones. Hamburger menus handle Hindi well; horizontal nav bars might need wider spacing.


Common Issues

Hindi Text Displaying as Boxes

Your theme is using a font that doesn't support Devanagari. Add a Devanagari font via CSS or plugin. Nirmala UI and Noto Sans Devanagari are the safest fallbacks.

WordPress Database Encoding

WordPress uses UTF-8 (specifically utf8mb4) by default. If you're migrating from an old WordPress installation that used a different charset, Hindi text might be corrupted. Check your wp-config.php:

define('DB_CHARSET', 'utf8mb4');

If this is set to something else (like 'latin1'), that's the problem. Changing it requires careful database migration — don't just change the value without converting existing data.

Importing Hindi Content from Word or PDF

When pasting Hindi content from Word into the WordPress editor, use Ctrl + Shift + V (paste without formatting) to strip Word's formatting. Word adds hidden markup that can mess up WordPress rendering.

For PDF content, copy text from the PDF and paste into transliterate.in to verify it's proper Unicode, then paste into WordPress.

Search Not Finding Hindi Content

WordPress's built-in search handles Hindi queries. If search isn't returning Hindi results:


  • Check that the search form accepts Unicode input (it should by default)

  • Consider a search plugin like SearchWP or Relevanssi for better Hindi search results

  • Make sure your Hindi content is in searchable fields (title, content, excerpt) and not just in custom fields



Hindi WordPress sites are completely mainstream now. The CMS handles Devanagari text natively, modern themes render it well, and the SEO plugins work with Hindi keywords. The main decisions are: which font to use (Noto Sans Devanagari is the safe bet), whether to go multilingual (Polylang for simple, WPML for complex), and how to handle URL slugs (Roman transliteration recommended). Everything else just works.

Ad 728x90