aWS Litesale WHM & CPANEL Email Account Creation to Activation

you can manage email addresses and email servers with your own website domain address using AWS LiteSail instances and WH & CPANEL. Let’s see how to create an email account and email management server using AWS LiteSail instances and CPANEL & WHM.The steps below will show you how to create an AWS email account and create emails.

how to create and activate an AWS LiteSail WHM & CPANEL email account

time required: 30 minutes.

how to create an AWS Litesale Instance WHM & CPANEL email account and register your server

  1. set up your domain and DNS records in AWS Litesale

    a record – mail.example.co.kr – > set public ip
    MX record – > set priority 10, set record name example.co.kr. next, set traffic routing mail.example.co.kr
    txt record sets 3 things

    txt value
    @.example.co.kr / spf1 response key
    _dmarc. : dmarc response key
    efault._domainkey : dkim response key
    a 레코드 - mail.example.co.kr - > public ip (공공아이피 설정) 
mx 레코드 - > 우선순위 10 으로 설정, 레코드이름 example.co.kr 설정. 다음으로 트래픽 라우팅 mail.example.co.kr 설정
txt 레코드는 3가지를 설정합니다.

txt 값
@.example.co.kr /  spf1 응답키 설정 
_dmarc.  : dmarc 응답킵 설정
efault._domainkey : dkim 응답키

  2. open AWS ports 25, 465,587,2096

    if you don’t open port 2096, you won’t be able to access the webmail server itself from cpanel, and if you don’t open ports 25, 2465, 587, you won’t be able to receive and send emails.
    In the Lightsail console, go to the Networking tab.
    open the following additional ports:
    TCP 25 (SMTP)
    TCP 465 (SMTPS)
    TCP 587 (Submission)
    TCP 2096 (Webmail SSL)
    5.2. Check your IPv6 firewall rules
    If you are using IPv6, remove any duplicate rules and open the ports. Lightsail 콘솔에서 네트워킹 탭으로 이동합니다.
다음 포트를 추가로 엽니다:
TCP 25 (SMTP)
TCP 465 (SMTPS)
TCP 587 (Submission)
TCP 2096 (Webmail SSL)
5.2. IPv6 방화벽 규칙 확인
IPv6를 사용하는 경우 중복된 규칙을 제거하고 포트를 열어줍니다.

  3. connect to WHM and proceed with IMAP & POP 3 activation

    enter https://<Elastic_IP>:2087 or example.com:2087 in a web browser and connect to WHM.
    home – > Service Configuration -> Mailserver Configuration and select IMAP, POP3 and proceed to activate IPv6.

    웹 브라우저에서 https://<Elastic_IP>:2087 또는 example.com:2087 입력 후 whm 에 접속합니다.
home - > Service Configuration ->  Mailserver Configuration 접속 후 imap, pop3 를 선택 후 ipv6 활성화를 진행합니다.

  4. activate exim mail server and imap server from whm service manager

    go to whm service configuration – > service manager – > exim mail server & imap enabled and activate it.whm service configuration - > service manager - > exim mail server & imap enbled 를 클릭 후 활성화를 시켜줍니다.

  5. check DKIM and SPF & DMARC settings

    go to whm -> email -> email deliverabilliy settings and check the valid content.
    If it is not set to valid, set the txt record file in your aws light sail dns zone.whm -> email -> email deliverabilliy 설정 접속 후 valid 내용을 확인합니다. 
valid 로 설정되어 있지 않다면, aws light sail dns 존에서 txt 레코드 파일을 설정합니다.

  6. set up WHM email routing

    set up the email routing set by DNS in WHM. Go to WHM -> email routing, select a domain, click LOCAL MAIL EXCHANNER, and set TTL 14400, priority value is 10, and MX destination is mail.example.co.kr.whm 에서 dns 설정한 이메일 라우팅을 설정합니다. whm - > email routing 에서 도메인을 서택 한 후 local mail exchaner  클릭 후 ttl 14400, priority 값은 10 , mx destisation 은 mail.example.co.kr 을 설정합니다.

  7. installing an SSL certificate for a mail domain from CPANEL

    go to CPANEL -> SECURITY -> SSL/TLS STATUS and enter the domain address of the mail server to install the SSL certificate.
    mail.example.co.kr and click RUN AUTO SSL to install the SSL certificate.
    cpanel -> security -> ssl/tls status  접속 후 메일 서버의 도메인 주소를 ssl 인증서 설치를 진행합니다.
mail.example.co.kr 클릭 후 run auto ssl 클릭 시 ssl 인증서가 설치 됩니다.

  8. cPANEL – > EMAIL ACCOUNT Create an account and log in.

    check the EMAIL account in CPANEL.
    The email address that is created by default when you create a CPANEL account is set to example@example.co.kr.
    If you want to change the email address, you can create an email address according to your preference after clicking the CREATE button.
    You can create an email address such as official@example.co.kr.

    cpanel 에서 email 계정을 확인합니다. 
cpanel 계정 생성시 기본으로 생성되는 이메일 주소는 example@example.co.kr 으로 설정 되어 있습니다.
만약 이메일 주소를 변경하고 싶으시다면 create 버튼을 클릭 후 앞에 사용자 설정에 따른 이메일 주소를 생성할 수 있습니다.
official@example.co.kr 같은 이메일 주소로 생성 가능합니다.

  9. request to unlock AWS email sending restrictions

    in the case of AWS Litesale, email sending is restricted. You will receive emails, but you need to request to unrestrict AWS Litesale separately to send them.

    You can request to unrestrict Litesale emails through the shortcut below.

    shortcutto Litesail Email Unrestriction Request

    After accessing the Litesail Email Unrestriction Request service, enter the email address you want to receive a response from, and write a description of your email use case.
    For IP information, enter the public ip address, which is the PUBLIC IP address of your Litesail instance.
    For reverse DNS record, enter the mail server domain address as mail.example.co.kr, and click Submit.
    aws 라이트세일의 경우 이메일 발송에 제한을 걸어두었는데요. 이메일은 수신되지만 발송을 위해 별도로 aws 라이트세일 제하 해제요청을 진행해주셔야합니다.

라이트 세일 이메일 제한 해제 요청은 아래 바로가기를 통해 가능합니다.

라이트세일 이메일 제한 해제 요청 바로가기

라이트세일 이메일 제한 해제 요청 서비스에 접속 후 본인의 답변받을 이메일 주소를 입력 후, 이메일 사용 사례 설명을 작성합니다.
ip 정보는 라이트세일 인스턴스의 public ip 주소인 공공 아이피 주소를 입력 합니다.
역방향 dns 레코드는 mail.example.co.kr 로 메일 서버 도메인 주소를 입력 한 후 제출 하기를 클릭합니다.

  10. installing the clam av plug in for virus scanning

    when using a homepage server, incoming emails may contain viruses. please install the clam av plug in to prevent viruses.
    clam av plug in is installed by clicking whm -> plugin -> clam av install.
    After installing the plug in, go to whm -> service manager -> clam av daemon enabled , monitor checkbox and proceed with activation.

we’ve checked all the steps from creating an AWS LiteSail WHM & CPANEL email account to activating it. If you can’t receive or send emails even if you follow the steps above, please check your port configuration and DNS settings.

if you’re having trouble configuring your email server, submit a service request and we’ll set up your server for you for a small fee.

noteson CPANEL & WHM email setup

sometimes port 2096 is not open after installing an instance of AWS LiteSail. Please open port 2096 on your instance after installing LiteSail to enable WHM webmail login.

add port 2096 and ports 25, 465, and 587.

the 2096 port is a way to open the way to access the webmail server when you log in to example.com:2096. When you create an AWS Litesale instance, the 2096 port is not created, so you need to open the 2096 port to sign up for email.

in DNS ZONE, check if the AWS domain and DNS zone CNAME , A records match with the WHM EMAIL DELIVERY tab, and if the VALID mark is checked, the DNS settings will proceed correctly.

to prevent hacking, you need to set up 2FA login authentication or white-list IPs of commonly used addresses, or set up CPHulk Brute Force Protection to be safe from hacking.

CGI Access vs. Shell (Shell Access) Access Differences and Appropriateness

The suitability ofCGI access versus Shell Access (SSH access) depends on how you manage your server and run your site. let’s compare their features, uses, and pros and cons.

1️⃣ What is CGI access?

Common Gateway Interface (CGI) is a protocol that allows external programs (scripts ) to run on your server. when a request comes in from a web browser, the CGI script dynamically generates content or processes data.

features

  • how it works: The server executes a specific script (PHP, Perl, Python, etc.) and returns the result.
  • security: Dynamic content can be generated without Shell (SSH) access.
  • hosting restrictions: CGI access is typically allowed in shared hosting environments.
  • inability to run complex commands: CGI access alone makes it difficult to change detailed settings on the server.

pros

  1. beginner-friendly: Set up by default, no additional management required.
  2. low security risk: Limited scope without SSH privileges.
  3. hosting support: cGI is enabled by default on most shared hosting environments.

cons

  1. limited functionality: You can’t manage the entire server or perform advanced tasks.
  2. efficiency issues: CGI creates a new process for each request, which can reduce performance.

2️⃣ What is Shell Access (Shell)?

Shell access (SSH access) refers to the ability to connectto a server directly through a terminal andexecute commands. Secure Shell (SSH) is a protocol that provides increased security through an encrypted connection.

features

  • operational: Allows users to log in directly to the server, run commands, and perform advanced tasks such as file management, service settings, and debugging.
  • security: Requires strong security settings (e.g., public key authentication).
  • hosting limitations: SSH access is restricted on shared hosting or must be enabled by request.

pros

  1. professional tools: allows you to set up and manage all aspects of your server.
  2. work efficiently: Check server status, view logs, run scripts, and perform advanced tasks.
  3. automatable: Set up Bash scripts, Cron Jobs, and more to perform automated tasks.

cons

  1. security risks: Poor password or key management can lead to your server being hacked.
  2. learning curve: Command-based interface can be difficult for beginners.
  3. error-prone: Potential to compromise your server if you run the wrong command.

3️⃣ Key differences between the two approaches

criteriaCGI approachShell (SSH) approach
purpose of usecreate dynamic content and perform limited tasksserver administration, file editing, debugging, checking logs, etc
security riskrelatively lowpossible security vulnerabilities depending on how it is managed
privilegeslimited (limited to running scripts)full server access
technical requirementsnone (beginner-friendly)requires basic commands and server administration knowledge
speed and efficiencycreates a new process for each request → inefficientfast and efficient with continuous sessions
hosting Support Availabilitybuilt-in on shared hostinglimited on shared hosting or requires activation after request

4️⃣ Which approach is suitable in which situations?

✅ When CGI access is right for you:

  • when you are operating in a shared hosting environment.
  • you only need to run WordPress, a blog, or a simple website and not manage the server.
  • you want to increase security and leave administrative responsibilities to your hosting provider.

✅ When Shell (SSH) access is appropriate:

  • When running a virtual private server (VPS), dedicated server, or cloud server.
  • when you want to customize your server or perform advanced tasks (e.g., analyze logs, install services).
  • when you want to use automation scripts (Bash, Cron Jobs, etc.).
  • when you need to work inside the server to optimize site performance.

5️⃣ Recommended settings for WHM environments

  • shared Hosting: Enable CGI access only to increase security.
  • VPS/Dedicated Server: Enable Shell Access and set up public key authentication (SSH Key) for security.
  • How to enable Shell Access (WHM)
    1. Goto WHM → Manage Shell Access.
    2. select Jailed Shell or Full Shell permissions for the user account.
    3. save and test access from an SSH client (e.g. PuTTY).

🔥 Conclusion

  • CGI access: sufficient if you only need to do simple tasks (install WordPress, manage plugins).
  • Shell (SSH) access: needed for advanced tasks (optimization, debugging, automation, etc.) on a VPS or dedicated server.
  • security aspects: Be sure to apply strong authentication settings (e.g. public key, password restrictions) when using Shell Access.

👉 Recommended: CGI access is sufficient for basic operation of WordPress and your website, but use SSH access for server optimization and advanced tasks. 🚀

WP-Optimize vs. WP Rocket: Which Plugin is Better?

WP-Optimize and WP Rocket are both plugins for optimizing WordPress speed, but they have different features and purposes.
we’ll compare the differences between each plugin and explain which one you should choose in which situations.

1️⃣ Key differences between WP-Optimize and WP Rocket

functionalityWP-Optimize 🚀vs WP Rocket 🚀 â
main Purposeprovides database optimization & cachingcaching & Page Speed Optimization
optimize your database✅ Powerful DB cleaning features❌ Basic DB cleaning (Auto-optimize X)
page Caching✅ (Not in free version, paid feature)✅ Advanced page caching support
image Optimization✅ Provides basic image compression❌ (requires a separate image compression plugin)
CSS/JS file optimization✅ Support for minifiles (minification)✅ Support for minifiles, merges, asynchronous loading, and lazy loading
Lazy Load✅ Support forsupport for advanced features
Gzip compression support✅ Yes✅ Yes
CDN support❌ None (requires direct CDN setup)✅ Cloudflare and various CDN support
mobile caching❌ None✅ Yes
pricingfree & Paid (Premium version required)
premium version:
2 domains: $49
5 domains: $99
unlimited Domains: $199
paid (1-year license required)
1 domain: $59
3 domains: $119
50 domains: $299

2️⃣ Detailed comparison by plugin

✅ WP-Optimize: a plugin that specializes in database optimization

WP-Optimize is a plugin that offers WordPress database optimization, image compression, and some cachingfeatures.

its main features include

  1. database cleanup 🛠
    • allows you to delete revisions, transient cache, spam comments, and trash data.
    • speed up your site by reducing unnecessary database load.
  2. image compression 📷
    • Support for WebP conversion and JPEG compression.
    • no need for a separate image optimization plugin.
  3. basic caching features (paid)
    • caching features are available in the paid version.
    • focused on DB optimization rather than page caching.

WP-Optimize is recommended for

sites where database optimization is important
if you only need image optimization and basic caching
If you want to use it for free

✅ WP Rocket: A caching plugin that specializes in speed optimization

WP Rocket is a paid plugin that targets advanced caching features, CSS/JS optimization, and speed improvements.

its main features include

  1. advanced caching system 🚀
    • generates static HTML files to significantly reduce page loading speed.
    • mobile caching support → speed up mobile page loading.
    • cache preload feature → faster when visitors first access your page.
  2. CSS & JS Optimization 🎨
    • Merge CSS/JS files to reduce HTTP requests.
    • Asynchronous JavaScript loading → faster page speed.
    • Unused CSS can be removed.
  3. Lazy Load support 📷
    • improve initial loading speed by making images load every time the page loads.
  4. CDN and Cloudflare support 🌍
    • integrate with Cloudflare to increase global speed without the need for a separate CDN service.

WP Rocket is recommended for

✅ If you want to maximize WordPress speed optimization
Need professional caching and performance optimization features
Want to integrate with a CDN to increase global speed

3️⃣ WP-Optimize vs. WP Rocket Choice Guide

purpose of Userecommended plugin
database optimization is most important✅ WP-Optimize
need basic speed optimization for free✅ WP-Optimize
needs full caching + optimization features✅ WP Rocket
Needs CSS/JS compression and loading speed optimization✅ WP Rocket
Need global speed boost with CDN integration✅ WP Rocket

4️⃣ UsingWP-Optimize and WP Rocket Efficiently

if you are not currently purchasing the WP Rocket plugin, we recommend that you install WP-Optimize first to clean up your database, which is not supported by the wp rocket plugin, and then use the wp rocket plugin.

if you use both plugins, your site may crash due to plugin conflicts, or your site may become slower. you can proceed with the 2 caching plugins in the order below.

  1. Install WP-Optimize plugin and optimize it (clean the database)
  2. Deactivate the WP-Optimize plugin and uninstall the plugin
  3. install the WP Rocket plugin
  4. Installing the WP rocket plugin + imagyiy plugin

After optimizing your database with WP-Optimize, you can significantly improve the speed of your website by using WP-Rocket’s caching feature. if you additionally utilize a CDN, you can improve your site’s speed considerably. If you do, you can improve your site’s speed considerably, as you can see from the distant

wp optimize 데이터 베이스 정리하기

Clean up your database after installing the WP-Optimize plugin

Go to theWP Rocket homepage , select a plan, pay and download the plugin.

install the downloaded WP ROCKET plugin to WordPress – > Add New Plugin – > Upload Plugin – > Upload Plugin -> Select a file to upload the plugin, click Install Now and the WP ROCKET plugin will be installed.

after installing WP ROCKET plugin, you need to activate it and then proceed with optimization settings in WP ROCKET plugin settings. I wrote a separate article on how to set up WP ROCKET plugin and what it does, and you can find more details in this article.

🔥 Final conclusion: which plugin should you choose?

  • if you need database cleanup and light speed optimization:WP-Optimize (available for free)
  • if you want the best speed optimization:WP Rocket (paid, but the best)

💡 Recommended combination:
👉 WP-Optimize (free) + LiteSpeed Cache (free) combination → Performance & Free Optimization
👉 WP Rocket (paid) + imagify (free) alone → powerful caching and image optimization

🚀 We recommend choosing the right plugin based onyour budget and site goals.

how to Create a Multilingual WordPress Site at a Glance

there are three main ways to create a multilingual sitewith WordPress.

  1. using a plugin (recommended) – WPML, Polylang, TranslatePress, etc
  2. subdomain or subdirectory approach – separate sites for each language
  3. multisite setup – manage multiple sites from one WordPress

we’ll explain the pros and cons of each method and how to set them up in detail.

building a multilingual site using the 1️⃣ plugin (easiest way)

to run a multilingual site in WordPress, it’s usuallyeasiest and most effective to use a multilingual plugin.

🚀 Compare our recommended plugins

pluginpricekey Features
WPMLpaid ($3-$10/year)most robust multilingual support, excellent SEO optimization
Polylangfree/Paidfree version supports basic multilingual features, easy to use
TranslatePressfree/Paidreal-time translation support, AI translation (Google Translate) available

💡 **WPML (WordPress Multilingual Plugin)** is the best choice for creating SEO-friendly multilingual sites.

🔹 Installation and Setup

  1. Purchase and install the WPML plugin(available for downloadat wpml.org)
  2. Select the languages you want to addin WPML > Languages
  3. Add strings to translatein WPML > String Translation
  4. Set SEO settings in WPML > Settings(you can change URL structure)
    • you can set URL structure likemydomain.com/en/, mydomain.com/fr/, etc
  5. translate each page/post to add multilingual content

📌 Pros
✅ Provides SEO optimization (supports Google multilingual search)
✅ Fully compatible with WooCommerce (shopping cart)

📌 C ons
❌ Paid plugin ($39 to $99 per year)

✅ Method 2: Polylang plugin (free to use)

💡 Polylangis a free-to-use multilingual plugin.

🔹 Install and set up

  1. plugins > Add New > Search for Polylang, install and activate it
  2. select the languages you want to addin Settings > Languages
  3. add multilingual translations from existing content (pages, posts)
  4. add navigation menus for each languagein the menu settings

📌 Pros
✅ Free to use
✅ Great for simple sites

📌 C ons
string Translation feature is paid (fewer translation options than WPML)

✅ Method 3: TranslatePress plugin (supports real-time translation)

💡 TranslatePressis a plugin that allows real-time translation by utilizing the Google Translate API.

🔹 Install and set up

  1. plugins > Add New > Install and activateTranslatePress
  2. set which languages to addin Settings > TranslatePress
  3. edit the text to be translated directlyin page edit mode
  4. AI translation (Google Translate API) available

📌 Pros
✅ Offers real-time translation functionality
intuitive UI for editing translations

📌 C ons
❌ Extra cost for automatic translation (Google API usage fee)

2️⃣ Subdomain / subdirectory method (run a separate site)

example:

  • subdomain method: en.mydomain.com, fr.mydomain.com
  • subdirectory method: mydomain.com/en/, mydomain.com/fr/

📌 How to set it up

  1. set up domain
    • subdomain method: create en.mydomain.com and install WordPress separately
    • subdirectory method: Build a new site at mydomain.com/en/ path
  2. run a WordPress site for each language
  3. addhreflang tags to optimize SEO

📌 Advantages
✅ You can run completely independent sites
✅ SEO optimization for each language is possible

📌 C ons
❌ Difficult to maintain (need to manage each language site separately)

3️⃣ Utilize the WordPress Multisite feature

by setting up WordPress Multisite, you can run multiple language sites on a single WordPress.

📌 How to set it up

  1. add the following code to your wp-config.php file
    • define('WP_ALLOW_MULTISITE', true);
  2. enable network settings in your WordPress admin
  3. add sites with subdomains or subdirectoriesfor each language
  4. connect languages using the plugin MultilingualPress

📌 Pros
✅ Manage multiple language sites from one WordPress
✅ Plugins, themes can be shared

📌 C ons
❌ Somewhat complicated to set up, increases server resource usage

🚀 Final Choice Guide (Which is the Best?)

methodrecommended forkey Features
WPML (Paid)SEO optimized, works with WooCommercepowerful multilingual features, easy to manage translations
Polylang (free)simple multilingual sitesfree to use, more limited features than WPML
TranslatePress (free/paid)requires real-time translationGoogle Translate API available
subdomains/Subdirectoriesfully independent site operationSEO powerful, difficult to maintain
multisitemultilingual blogs, portalsrun multiple language sites on one WordPress

📌 Recommended combinations: ✅ WPML + SEO optimization → professional multilingual site
Polylang (free) + cache optimization → small multilingual site
TranslatePress + AI translation → build an automatic translation site

🔹 Conclusion

there are many ways to create a multilingual site in WordPress, but using a plugin is the most efficientway.
For SEO optimization and ease of maintenance, the WPML pluginis the most recommended.
however, you can also utilize **free plugins (Polylang, TranslatePress) to add multilingual capabilities while saving money.

💡 Not sure which one is best for you?Simple blogPolylang (free)
Shopping malls, corporate sitesWPML (paid)
Automatic translation supportTranslatePress + Google Translate API

🚀 S etting up your multilingual site will be much easier if you follow this method! 💪

what to do when your WordPress site admin page and site are slow to load

there are many reasons why your WordPress admin (Admin) page might be slow. server issues, plugin overload, and lack of database optimization are the main culprits. below, we’ll walk you through the possible causes and solutions step-by-step.

1️⃣ Top Causes of Slow WordPress Admin Page

1. server performance issues

  • Low PHP version: Performance degradation occurs when using PHP 7.4 or lower.
  • LowPHP memory limit: A low default (128M) can cause slow admin pages.
  • InsufficientCPU and server resources: Possible overload when using low-end shared hosting.

slower PHP version itself can slow down site performance, and a low PHP memory limit can slow down the admin page itself.

2. plugin/Theme Over-Installation and Conflicts

  • over-installation of plugins: If you have a lot of plugins that you don’t need, it can slow down the loading of the admin page.
  • using heavy plugins: e.g.) SEO plugins, security plugins, inefficient cache plugins.
  • theme performance issues: Inefficiently written theme causing poor performance.
  • theme and plugin conf licts: server errors caused by conflicting plugins that are incompatible with the theme

this can happen if unused plugins are not deleted properly, your site slows down if you have a lot of heavy plugins installed, or if an existing plugin conflicts with an existing plugin because it was not deleted properly.

conflicting plugins that are incompatible with your WordPress theme can also cause your site to slow down.

3. database overload

  • outdated revisions (post revisions) and temporary data (transients) overwhelming the database.
  • slow admin if there is a lot of data set to autoload in thewp_options table.

4. AJAX overload (admin-ajax.php)

  • overloaded when there are many AJAX requests, such as real-time notifications, WooCommerce dashboard data, etc.

2️⃣ How to optimize WordPress admin speed

1. Optimize your PHP settings

  1. Upgrade your PHP version
    • We recommend using PHP 8.0 or higher.
    • upgrade your PHP version from your cPanel or hosting admin page.
  2. change your PHP-PHM settings
    • changing PHP-FPM settings, PHP FPM plays an important role in improving the speed of your admin page.
  3. Increase PHP memory limit
    • set memory_limitto 512M or higher in cPanel.
    • add the code below to yourwp-config.php file.
define('WP_MEMORY_LIMIT', '512M'); define('WP_MAX_MEMORY_LIMIT', '512M');

2. optimize plugins and themes

  1. deactivate unnecessary plugins
    • check all of your currently active plugins and deactivate the ones you don’t use.
  2. replace heavy plugins
    • examples of plugins that can be problematic
      • Elementor: Heavy page builder plugin.
      • WooCommerce: Can cause inefficient AJAX requests.
    • alternative: Use a lightweight plugin.
  3. test changing to the default theme
    • to test admin page speed, check the performance after changing to a lightweight theme like Twenty Twenty-One and generaterpress.
  4. Use the WP-Optimize plugin
    • Install the WP-Optimize plugin to perform database optimization tasks
      • deleting post revisions.
      • deleting temporary data (transient).
      • removing trash and spam comments.
  5. manual database optimization
    • run the following queries in phpMyAdmin to delete expired and unnecessary data:sqlCopyEditDELETEFROM wp_options WHERE option_name LIKE '_transient_%'; DELETE FROM wp_options WHERE option_name LIKE '_site_transient_%';

3. Reduce AJAX requests

  1. Install the Heartbeat Control plugin from
    • Reduce admin-ajax.php load by limiting Heartbeat API requests from WordPress.
    • Install the Heartbeat Control plugin → Reduce or disable “Heartbeat Frequency”.
  2. Disable the WooCommerce dashboard
    • WooCommerce → Settings → Advanced → Disable “WooCommerce Dashboard”.

4. optimize your cache plugin

  1. Optimize WP Rocket settings
    • If WP Rocket is enabled, check the options below
      • Disable CSS/JS minification: it can conflict with certain plugins or themes.
      • limit cache preloads: to prevent excessive preloading.
    • Run WP Rocket → “Clear Cache”.
  2. avoid conflicts with other cache plugins
    • Avoid using other cache plugins like LiteSpeed Cache, W3 Total Cache, etc. with WP Rocket.

5. check server performance

  1. upgrade your hosting
    • if you’re on a low-cost shared hosting, you may be underutilizing your CPU or RAM and need to upgrade the hosting server itself.
  2. Use the Query Monitor plugin
    • Install the Query Monitor plugin to analyze the queries executed on your admin pages.
    • identify which plugins or themes are causing inefficient queries and take action.

3️⃣ Additional checklists

  1. clear your browser cache and cookies
    • if your admin page is slow, clear your browser cache and cookies and retest.
  2. Check your CDN settings
    • If you are using a CDN (e.g. Cloudflare), check your CDN cache settings if the admin page is slow.
  3. check your site health
    • Go to WordPress → “Tools → Site Health” to see recommendations regarding your server and plugins.

🚀 Conclusion

  1. Prioritizeoptimizing your PHP settings, disabling unnecessary plugins, and optimizing your database.
  2. Use plugins like Query Monitor and WP-Optimize to analyze performance and iterate on optimizations.
  3. if you continue to have issues, consider upgrading your server environment or seeking professional help.

speeding up WordPress with whm & cpanel: Setting up PHP-FPM

PHP-FPM (FastCGI Process Manager) plays an important role in improving the speed of the WordPress admin page. PHP-FPM can increase server performance by efficiently processing PHP requests, and can solve the problem of slow admin pages. we’ll walk you through how to change your PHP-FPM settings below.

when should you use PHP-FPM?

You should consider using PHP-FPM in the following situations

  1. high-traffic websites
    • on high-traffic sites that need to handle thousands or more concurrent requests per day, PHP-FPM reduces bottlenecks and improves response times.
  2. server environments with limited resources
    • Because PHP-FPM manages memory and CPU resources efficiently, it provides performance improvements even in limited server environments.
  3. when your WordPress admin page is slow
    • admin pages generate more PHP requests than regular pages, so PHP-FPM optimizations can improve speed.
  4. When PHP requests are overloaded
    • when your existing PHP settings can’t handle enough concurrent requests, resulting in a 504 Gateway Timeout error, applying PHP-FPM can fix the problem.

PHP-FPM Key Settings Explained and Recommended Values

To optimize the performance of PHP-FPM, we’ve summarized the important settings and recommended values below, each of which affects the performance of request handling for dynamic websites, such as the WordPress admin page.

name: 1️⃣ pm.max_children

  • description
    • defines the maximum number of requests that can be processed at the same time.
    • Sets the maximum number of requests that PHP-FPM can handle at once, after which requests will be put into a queued state.
    • this value is determined by the memory capacity of the server.
  • recommended values
    • 10-50: Small websites.
    • 50-150: Medium traffic websites.
    • 150-300: High-traffic websites.
    • (For example, you can have about 20 max_children per 1 GB of RAM)

description: 2️⃣ pm.start_servers

  • description
    • The number of processes PHP-FPM prepares at startup.
    • sets the number of processes that are ready and waiting to handle initial requests.
    • a setting that is too low can increase the latency of initial requests.
  • recommended value
    • set between the values of pm.min_spare_servers and pm.max_spare_servers
      • example) If pm.min_spare_servers=5 and pm.max_spare_servers=10,set pm.start_servers=7.

description: 3️⃣ pm.min_spare_servers

  • description
    • defines the minimum number of processes that should always be kept alive while waiting for requests.
    • if there are fewer processes than this value, PHP-FPM will create a new process.
  • recommended value
    • small sites: 2-5
    • high-traffic sites : 5-10

4️⃣ pm.max_spare_servers

  • description
    • defines the maximum number of processes that can be created to wait for requests.
    • processes that exceed the set value will be eliminated.
    • if this value is too high, it can cause memory waste.
  • recommended value
    • small sites: 5 to 10
    • high-traffic sites : 10-20

5️⃣ pm.max_requests

  • description
    • sets the maximum number of requests that each PHP-FPM process can handle.
    • this value serves to periodically recreate the process to prevent memory leaks.
    • a value that is too low can cause performance degradation due to frequent process regeneration, while a value that is too high can cause problems due to memory leaks.
  • recommended values
    • 500 to 1000: Stable request processing.
    • 1000 to 2000 ispossible onhigh-traffic websites ifthere are nomemory issues.

description: 6️⃣ pm=dynamic or static

  • explanation
    • How PHP-FPM processes are managed
      • dynamic: dynamically increase/decrease processes based on the number of requests.
      • static: Maintains a fixed number of processes.
  • recommended
    • dynamic: Suitable for most sites.
    • static: Sites that are very stable and require fixed resource allocation.

example final settings

here are some examples of settings based on your server memory and traffic situation

medium traffic (based on 4 GB of RAM)

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 1000

high Traffic (based on 8GB of RAM)

pm = dynamic
pm.max_children = 150
pm.start_servers = 20
pm.min_spare_servers = 15
pm.max_spare_servers = 30
pm.max_requests = 2000

How to optimize the admin page by changing PHP-FPM settings

1️⃣ Why you need PHP-FPM settings

  1. improving concurrent request handling
    • PHP-FPM greatly improves the performance of dynamic websites like WordPress by managing multiple processes.
  2. increased resource efficiency
    • PHP requests are handled efficiently, reducing CPU and memory usage.
  3. improved speed, especially for admin pages
    • admin pages generate more PHP requests, so it’s important to optimize PHP-FPM’s performance.

2️⃣ Enable PHP-FPM and change the settings in your cPanel

  1. log in to your cPanel
    • log in to your hosting management tool and navigate to the PHP Settings page.
  2. Activate PHP-FPM
    • selectSoftware → MultiPHP Manager.
    • Make sure PHP-FPM is enabled for the domain used for your WordPress site, and if it is not, click the Enable button.
  3. Change PHP-FPM settings
    • goto Software → MultiPHP INI Editor.
    • Adjust the PHP-FPM related settings as shown below:

setting Description:

  • pm.max_children: Maximum number of requests that can be handled simultaneously. (The higher you set it, the more concurrent requests you can handle)
    • recommended value :
  • pm.start_servers: Initial number of processes.
  • pm.min_spare_servers: Minimum number of standby processes.
  • pm.max_spare_servers: Maximum number of spare processes.
  • pm.max_requests: Maximum number of requests that one process can handle. (500 to 1000 is recommended)
pm = dynamic pm.max_children = 20 pm.start_servers = 4 pm.min_spare_servers = 2 pm.max_spare_servers = 8 pm.max_requests = 500

3️⃣ Modifying the PHP-FPM configuration file directly

if your hosting environment is not cPanel, you can connect to your server with SSH and modify the PHP-FPM configuration file directly.

  • Open the PHP-FPM configuration file:
    After connecting to the server via SSH, open the PHP-FPM configuration file. To open the PHP-FPM configuration file, open a shell and enter the code below.
sudo nano /etc/php/7.x/fpm/pool.d/www.conf
  • modify the settings:
    adjust the main items as below
pm = dynamic pm.max_children = 30 pm.start_servers = 5 pm.min_spare_servers = 3 pm.max_spare_servers = 10 pm.max_requests = 1000
  • Restart PHP-FPM:
    restart the PHP-FPM service after changing the settings.
sudo systemctl restart php7.x-fpm


4️⃣ Additional work to optimize the admin page

In addition to changing the PHP-FPM settings, to optimize your WordPress admin page speed, do the following tasks together

  1. Limit the Heartbeat API
    • Install the Heartbeat Control plugin to limit the frequency of AJAX requests on the admin page.
  2. set up cache plugins
    • Utilize cache plugins like WP Rocket and W3 Total Cache to improve admin page performance.
  3. optimize your database
    • Use the WP-Optimize plugin to clean up outdated revisions, temporary data, and more.
  4. Upgrade your PHP version
    • Using PHP 8.0 or higher will significantly improve performance.

check your PHP-FPM optimization results 5️⃣

  1. check site performance
    • check if the admin page speed has improved.
    • if necessary, analyze query processing times with the Query Monitor plugin.
  2. check server resource usage
    • monitor CPU and memory usage in cPanel or your server management tool.

🚀 Conclusion

Properly tuning your PHP-FPM settings can significantly improve the speed of your WordPress admin page. additionally, limiting Heartbeat, cache optimization, database cleanup, etc. can have an even greater effect.

PHP-FPM is a PHP execution environment that improves both performance and resource management, and is especially useful for solving speed issues on high-traffic sites or WordPress admin pages. when set up correctly, it can dramatically improve your website’s performance and provide reliable service through efficient process management.

Let’s take a look at what PHP-FPM offers and how to set it up, then move on to specific steps to troubleshoot WordPress performance issues. 😊

🌍 How to Create a WordPress Multilingual Site Easily 🚀

there are several ways to create a multilingual (multilingual) sitewith WordPress. you can set up a single website to support multiple languages so that visitors can view your content in their preferred language.

1️⃣ 3 Ways to Create a Multilingual Site

the top 3 ways to create a multilingual WordPress site:

methoddescriptionrecommended for
use a pluginthe easiest way, automatic translation support🔹If you want to make it fast and easy
use multisite functionalityyou can run separate sites for each language🔹If you need complete independent translation
manual translation (utilizing subdomains / subdirectories)create separate pages for each language🔹If you want the best SEO and performance

create a multilingual site with 2️⃣ plugin (easiest way)

💡 Recommended plugins:
wordPress has many powerful multilingual plugins.

pluginpricefeatures
WPMLpaidthe most powerful multilingual plugin (SEO ready)
Polylangfree / Paidsimple and lightweight plugin
TranslatePressfree / Paidenables real-time front-end translation
WeglotpaidAI automatic translation support

the easiest way: use TranslatePress or Polylang 🚀

✅ Method 1: Create a multilingual site with Polylang (free)

📌 Features:

  • powerful features even in the free version
  • simple to use and offers a language switcher (toggle button)
  • requires you to manually enter the content to be translated

📌 Installation and setup

1️⃣ Add WordPress Plugins Search for Polylang and install it
2️⃣ Settings → Add Languages

  • add the desired language in Settings → Languages(e.g. Korean 🇰🇷, English 🇺🇸, Japanese 🇯🇵, etc.)
    3️⃣ Add content to translate
  • pages → Create a new post, then copy the existing page to create the translation
    4️⃣ Add language switcher (switch button)
  • widgets → Add language selector (can be placed in menu or sidebar)
    5️⃣ SEO Settings
  • Use withYoast SEO or RankMathfor multilingual SEO optimization

✅ Method 2: Create a multilingual site with TranslatePress (free)

📌 Features:

  • real-time translation on the frontend (site screen)
  • Supports AI translation (Google Translate API)
  • easy to use even for beginners

📌 Installation and setup

1️⃣ Add WordPress Plugins Search for TranslatePress and install it
2️⃣ Settings → Add Languages

  • set default language + additional languages in Settings → TranslatePress
    translate live on your site at 3️⃣
  • click “Translate Site” in the top bar and translate directly
    4️⃣ Automatic translation (optional)
  • Support automatic translation when connected to Google Translate API
    5️⃣ Add Language Switcher
  • add to menu or widgetin Settings → Language Switcher

✅ Method 3: Create a multilingual site with WPML (Paid)

📌 Features:

  • most powerful multilingual plugin (recommended for businesses)
  • WooCommerce (shopping mall) multilingual support
  • Excellent SEO features

📌 Installation and setup 1️⃣ Purchase and install the WPML plugin
2️⃣ Settings → Add Language
3️⃣ Translate your content

  • translate manually or utilize the translation manager feature
    4️⃣ SEO optimization
  • Use with Yoast SEO, RankMath

3️⃣ Multilingual SEO optimization (search engine optimization)

sEO optimization is important when running a multilingual site.

Set up your URL structure (SEO optimization)

  • subdirectories (recommended): example.com/en/, example.com/en/, example.com/en/
  • usesubdomains: en.example.com, ko.example.com
  • use separate domains: example.kr, example.com

Add the hreflang tag

you need to add the hreflang tag so that search engines recognize the correct language page.

example:

<link rel="alternate" hreflang="en" href="https://example.com/ko/" /> <link rel="alternate" hreflang="en" href="https://example.com/en/" />

Use an SEO plugin

  • Yoast SEO or RankMath plugin offers multilingual SEO optimization

4️⃣ Multilingual site performance optimization

multilingual sites can become slow due to the large number of translated pages.
use the following methods to optimize speed

1️⃣ Use a caching plugin → LiteSpeed Cache, WP Rocket
2️⃣ Apply a Content Delivery Network (CDN) → Use Cloudflare
3️⃣ Optimize images → Smush or ShortPixel plugin
4️⃣ Remove unnecessary plugins

5️⃣ Recommendations for building a multilingual site

recommendationdescriptionrecommended for
Polylangsimple free plugin, requires direct translation🔹Personal blogs, small sites
TranslatePressreal-time translation support, AI translation available🔹Enterprise sites, easy to translate
WPMLpowerful features, WooCommerce support🔹Large businesses, shopping malls

👉 Easiest way to get started: TranslatePress + Google Translate API 🚀

🔥 Final Summary

Easiest way: use Polylang or TranslatePress plugin
Need automatic translation? Use TranslatePress + Google API
Want a fully multilingual site? Use WPML
SEO optimization is a must: add hreflang tags, utilize SEO plugins
Optimize for speed: apply caching, CDN, image compression

🚀 Now you can create a multilingual site with ease! 🌍

🌍 WordPress Multilingual Site Building an Automatic Translation System with deep L ai and Polylang Lecture

hello! 😊 Today we’re going to learn how to build a system to automatically translate existing and new posts on your WordPress site, and even optimize them for SEO.

in this lesson, we’ll utilize the DeepL API, the Polylang plugin, and Yoast SEOto create an environment that you can set up once and have translations happen automatically. 🚀

as a reminder, the DEEP L API is free to use for translating up to 500,000 characters per month.

📌 Course Objectives

1️⃣ translate all existing Korean posts into English and Japanese
2️⃣ Automatically translate future posts as they are created
3️⃣ preserve the HTML structure of translated posts so that they don’t break
4️⃣ apply SEO (search engine optimization) settings to maximize search visibility
5️⃣ Prevent duplicate translations to avoid retranslating already translated posts

💡 1. Prepare your project

first, you need to prepare your project. it should have the following tasks done

📌 Required installations

WordPress site
polylang plugin (multilingual support)
yoast SEO plugin (search optimization)
deepL API key issued (to use the Translation API)

📌 Get DeepL API key

To use the DeepL translation API, you need an API key.
1️⃣ DeepLGo to the API website
sign up for 2️⃣ and get an API key
3️⃣ Copy your API key( enter it in theYOUR_DEEPL_API_KEY part)

💡 2. Writing the code: Building the automatic translation system

now, let’s build the translation system by adding code to functions.php.

📌 2-1. Code to automatically translate existing posts

first, let’s create code to automatically translate all posts that have already been created.

// function to check if a post is already translated (to avoid duplicate translations) function is_already_translated($post_id, $lang) { $translations = pll_get_post_translations($post_id); return isset($translations[$lang]); // check if a translation exists for that language } // function to translate all existing posts (run only once) function auto_translate_existing_posts() { $languages = [
        'en' => ['prefix' => 'en', 'sep' => '-', 'sitename' => get_bloginfo('name')], 'ja' => ['prefix' => 'ja', 'sep' => '-', 'sitename' => get_bloginfo('name')], ]; $args = [
        'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => -1, ]; $posts = get_posts($args); foreach ($posts as $post) { if (pll_get_post_language($post->ID) !== 'en') continue; foreach ($languages as $lang => $settings) { if (is_already_translated($post->ID, $lang)) { continue; // skip if already translated } $translated_title = deepl_translate_with_html($post->post_title, $lang); $translated_content = deepl_translate_with_html($post->post_content, $lang); $translated_slug = $settings['prefix'] . '-' . sanitize_title($translated_title); $seo_title = $translated_title . ' ' . $settings['sep'] . ' ' . $settings['sitename']; $translated_post_id = wp_insert_post([
                'post_title' => $translated_title, 'post_content' => $translated_content, 'post_status' => 'publish', 'post_type' => $post->post_type, 'post_author' => $post->post_author, 'post_name' => $translated_slug, 'post_category' => wp_get_post_categories($post->ID), 'meta_input' => [
                    '_yoast_wpseo_title' => $seo_title, ], ]); pll_set_post_language($translated_post_id, $lang); pll_save_post_translations([ 'en' => $post->ID, $lang => $translated_post_id, ]);
        } } } // Run translation of existing post (run only once) add_action('admin_init', function () { if (isset($_GET['run_translation']) && $_GET['run_translation'] === '1') { auto_translate_existing_posts(); wp_die('Translation for all existing posts completed.'); } })

🚀 Now, if you run the URL below in your browser, all your existing posts will be translated!

(Make sure to changeyour-site.com to your site domain)

https://your-site.com/wp-admin/?run_translation=1

📌 2-2. New post auto-translation code

Nowset it up so that new posts are automatically translated when they are created.

function auto_translate_and_seo_publish($post_id) { $original_post = get_post($post_id); if ($original_post->post_status !== 'publish') return; $languages = [ 'en' => ['prefix' => 'en', 'sep' => '-', 'sitename' => get_bloginfo('name')], 'ja' => ['prefix' => 'ja', 'sep' => '-', 'sitename' => get_bloginfo('name')], ]; if (pll_get_post_language($post_id) !== 'en') return; foreach ($languages as $lang => $settings) { if (is_already_translated($post_id, $lang)) { continue; // skip if already translated } $translated_title = deepl_translate_with_html($original_post->post_title, $lang);
        $translated_content = deepl_translate_with_html($original_post->post_content, $lang); $translated_slug = $settings['prefix'] . '-' . sanitize_title($translated_title); $seo_title = $translated_title . ' ' . $settings['sep'] . ' ' . $settings['sitename']; $translated_post_id = wp_insert_post([
            'post_title' => $translated_title, 'post_content' => $translated_content, 'post_status' => 'publish', 'post_type' => $original_post->post_type, 'post_author' => $original_post->post_author, 'post_name' => $translated_slug, 'meta_input' => [
                '_yoast_wpseo_title' => $seo_title, ], ]); pll_set_post_language($translated_post_id, $lang); pll_save_post_translations([
            'en' => $post_id, $lang => $translated_post_id, ]); } } // Run automatic translation when a new post is published add_action('publish_post', 'auto_translate_and_seo_publish')

🚀 Final wrap-up

Want to translate all existing posts?

  • run it once: https://your-site.com/wp-admin/?run_translation=1

Want to translate a new post?

  • auto-translated after creating a new post. (No additional work required)

Want to recreate a translated post?

  • delete the existing translated post and run it again.

💡 Now you can run multilingual content in WordPress completely automatically! 🚀 If you have any more questions, feel free to ask! 😊

📌 Additional things to check after the run

  1. check if your translated posts have been created
    • check yourWordPress admin → “All Posts” to see if you have posts translated intoEnglish (EN) andJapanese (JA).
  2. Check the URL
    • korean posts: https://example.co.kr/올림픽-일정/
    • english post: https://example.co.kr/en/olympic-schedule/
    • japanese posts: https://example.co.kr/ja/オリンピック日程/
  3. make sure your translated posts are properly linked in Polylang
    • check translation relationships in yourWordPress admin → Polylang.

📌 Once you finish translating an existing post, you don’t need to run it again

✅ Once you translate an existing post once, you don’t need to run this URL again.
✅ Afterward, when you create a new post, it will be translated automatically.

📌 Additional questions

Q1. Can I run this URL multiple times?

✅ It’s okay to run it multiple times, as it won’t retranslate posts that have already been translated.
✅ Thisis because it contains code(is_already_translated()) that prevents duplicate translations.

Q2. How do I retranslate an existing post?

🚨 You need to delete the existing translation and run it again.
✅ Delete the existing translated post and run https://your-site.com/wp-admin/?run_translation=1 again.

Q3. What if the translation doesn’t happen automatically?

❌ If you run it and it doesn’t translate, check the following

  1. make sure the code is addedto functions.phpcorrectly.
  2. Make sure your DeepL API key is set correctly.
  3. Make sure the Polylang plugin is activated.
  4. wordPress admin → Settings → Save unique address (permalink ) button and run it again.

SEO Tutorial: SEO Master Class for WordPress and AdSense

📢 SEO Lecture in Korea

Search Engine Optimization (SEO) is essential for success online today, especially if you’re running WordPress and AdSense. Learn practical techniques and strategies to increase your traffic from search engines with this customized SEO course. Learn practical techniques and strategies to increase your traffic from search engines!

📌 Course Overview

  1. Lecture Topics:
    • Optimize your WordPress site for SEO
    • SEO strategies for maximizing AdSense revenue
  2. Target:
    • Bloggers and WordPress site operators
    • People who want to increase their AdSense ad revenue
    • Beginners to intermediates who are new to SEO
  3. Lecture Locations:
    • Near Hakdong Station, Gangnam-gu, Seoul (5 minutes walk from Exit 3 of Hakdong Station on Subway Line 7)
    • Convenient online Zoom lectures available
  4. Course Schedule:
    • Time: Every Monday/Wednesday/Friday, 8-9pm
    • Duration: 12 sessions over 4 weeks
  5. Cost of the course:
    • 30,000 won per hour (12 sessions total: 360,000 won)
    • Includes course textbooks and practice materials

📚 Course Curriculum

  1. SEO Basics (1-3):
    • How search engines work
    • How to do keyword research
    • Basic SEO Settings with WordPress Plugins
  2. WordPress SEO Optimization (4~6th time):
    • Yoast SEO, Rank Math plugin in-depth utilization
    • SEO-Friendly Writing and Posting Strategies
    • Optimizing internal and external links
  3. AdSense and SEO (7~9th time):
    • Analyzing and Utilizing High-Paying Keywords
    • Content strategy to increase click-through rate (CTR)
    • How to Optimize Your Google AdSense Ads
  4. SEO Deepening Strategies (10~12th time):
    • Build Backlinks and Utilize Tools
    • Measure your SEO performance (Google Analytics, Google Search Console)
    • Latest SEO trends and algorithm changes

🎓 About the Instructor

KimSEO Instructor:

  • 10 years of experience as a consultant specializing in SEO
  • Experienced in running WordPress and AdSense blogs
  • Expert in teaching Google Analytics (GA) and Search Console utilization

💡 Course Features

  1. Hands-on:
    • Live, hands-on WordPress and AdSense setup during the class.
    • Hands-on lab with direct application to student sites.
  2. Small Personalized Lessons:
    • Small classes limited to a maximum of 10 people per class.
    • Individualized feedback and Q&A sessions available.
  3. Various Support Materials:
    • SEO checklists and guides to utilizing keyword research tools.
    • A post-class recording (if attending online).

📞 Contact Us and Register

  1. 전화: 010-2462-3443
  2. Email: contentflow@contentflow.co.kr

📌 Register Now!

SEO is a must if you want to run WordPress and AdSense successfully. This course will take you from the basics to the practical, so you can make your content stand out in the search engines 🚀

How to Create a Multilingual Website with WordPress

Creating a multilingual (multi-language) website with WordPress can be done in several ways. A multilingual setup allows visitors to view content in their preferred language.

1️⃣ Three Main Methods to Create a Multilingual Website

There are three primary ways to build a multilingual site in WordPress:

MethodDescriptionRecommended For
Using a PluginThe easiest method, with automatic translation support🔹 Quick and easy setup
Using MultisiteEach language operates as a separate site🔹 Full independence for translations
Manual Translation (Subdomain/Subdirectory)Separate pages for each language🔹 Best for SEO and performance

2️⃣ Creating a Multilingual Site with a Plugin (Easiest Method)

💡 Recommended Plugins:
WordPress offers powerful multilingual plugins.

PluginPricingFeatures
WPMLPaidMost powerful multilingual plugin (SEO-friendly)
PolylangFree/PaidLightweight and simple
TranslatePressFree/PaidReal-time front-end translation
WeglotPaidAI-powered automatic translation

🚀 Easiest Option: TranslatePress or Polylang

✅ Method 1: Creating a Multilingual Site with Polylang (Free)

📌 Features:

  • Free version offers powerful functionality
  • Simple to use, with a language switcher
  • Requires manual content translation

📌 Installation & Setup: 1️⃣ Install Polylang Plugin

  • Go to WordPress Admin > Plugins > Add New
  • Search for Polylang, install, and activate

2️⃣ Add Languages

  • Go to Settings > Languages
  • Add languages (e.g., Korean 🇰🇷, English 🇺🇸, Japanese 🇯🇵)

3️⃣ Translate Content

  • Go to Pages > Add New
  • Copy existing pages and manually translate them

4️⃣ Add a Language Switcher

  • Go to Widgets > Add Language Switcher
  • Place it in the menu or sidebar

5️⃣ SEO Optimization

  • Use Yoast SEO or RankMath to optimize multilingual SEO

✅ Method 2: Creating a Multilingual Site with TranslatePress (Free)

📌 Features:

  • Real-time front-end translation
  • AI-powered translation (Google Translate API)
  • Easy to use for beginners

📌 Installation & Setup: 1️⃣ Install TranslatePress Plugin

  • Go to WordPress Admin > Plugins > Add New
  • Search for TranslatePress, install, and activate

2️⃣ Add Languages

  • Go to Settings > TranslatePress
  • Set a default language and add additional languages

3️⃣ Translate Content in Real-Time

  • Click “Translate Site” from the top admin bar
  • Manually translate content on the front-end

4️⃣ Enable Automatic Translation (Optional)

  • Connect to Google Translate API for automatic translation

5️⃣ Add a Language Switcher

  • Go to Settings > Language Switcher
  • Add a switcher to the menu or widget area

✅ Method 3: Creating a Multilingual Site with WPML (Paid)

📌 Features:

  • Most powerful multilingual plugin (recommended for businesses)
  • Supports WooCommerce (multilingual eCommerce)
  • SEO-friendly

📌 Installation & Setup: 1️⃣ Purchase & Install WPML

  • Buy WPML from the official website
  • Install and activate it in WordPress

2️⃣ Add Languages

  • Go to Settings > Languages
  • Configure multilingual settings

3️⃣ Translate Content

  • Use manual translation or the WPML Translation Manager

4️⃣ SEO Optimization

  • Integrate with Yoast SEO or RankMath

3️⃣ Multilingual SEO Optimization (Search Engine Optimization)

SEO is crucial for multilingual websites.

Recommended URL Structure (Best for SEO)

StructureExampleRecommended
Subdirectoryexample.com/en/, example.com/ko/✅ Best SEO practice
Subdomainen.example.com, ko.example.com⚠️ Requires extra domain setup
Separate Domainsexample.kr, example.com✅ Best for independent markets

Adding hreflang Tags
Hreflang tags help search engines identify the correct language for users.

📌 Example Code:

html복사편집<link rel="alternate" hreflang="ko" href="https://example.com/ko/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />

Using SEO Plugins

  • Yoast SEO or RankMath provide multilingual SEO support

4️⃣ Performance Optimization for Multilingual Websites

Multilingual sites can slow down due to multiple translations. Optimize speed using the following:

1️⃣ Caching Plugins → Use LiteSpeed Cache or WP Rocket
2️⃣ Content Delivery Network (CDN) → Use Cloudflare
3️⃣ Image Optimization → Use Smush or ShortPixel
4️⃣ Remove Unnecessary Plugins

5️⃣ Recommended Approaches for Different Use Cases

Recommended MethodDescriptionBest For
PolylangFree, requires manual translation🔹 Personal blogs, small websites
TranslatePressReal-time translation, AI-supported🔹 Easy translation for business sites
WPMLPowerful features, WooCommerce support🔹 Large businesses, eCommerce

👉 Easiest Option: TranslatePress + Google Translate API 🚀

🔥 Final Summary

Easiest Method: Use Polylang or TranslatePress
Need Automatic Translation? Use TranslatePress + Google API
For a Fully Professional Multilingual Site: Use WPML
SEO Optimization is Essential: Add hreflang tags, use SEO plugins
Speed Optimization: Use caching, CDN, image compression

🚀 Now you can easily create a multilingual WordPress site! 🌍