=== Hreflang Customizer === Contributors: jems007 Donate link: https://ko-fi.com/jemssaliya Tags: hreflang, hreflang tags, seo, multilingual, international seo Requires at least: 5.8 Tested up to: 7.0 Stable tag: 1.1.0 Requires PHP: 7.0 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Easily add hreflang tags to any WordPress site. Works standalone — no translation plugin required. == Description == **Hreflang Customizer** is a free plugin that generates hreflang tags for your WordPress pages automatically. It works on any site — no multilingual plugin is required. Hreflang tags tell search engines which language and region each page targets. This prevents duplicate-content issues across multilingual or multi-regional sites and helps the right version of your page rank in the right country. = Key Features = * ✅ Works **without** any translation plugin — standalone mode out of the box * ✅ Also integrates with **Weglot** for translated URL mapping * ✅ Searchable language picker with 180+ languages and regional variants * ✅ Selected languages shown as removable tag chips with language codes * ✅ Language list cached via WordPress Transients API (no repeated API calls) * ✅ Clean, modern admin UI — fully responsive * ✅ No upsells, no premium tier — 100% free = How It Works = **Standalone mode:** Select your target language codes in the settings page. The plugin outputs one `` tag per selected code in the `
` of every page, pointing to the canonical URL of that page. **Weglot mode:** If Weglot is installed and active, the plugin maps Weglot's translated URLs to your selected hreflang codes automatically. = Example Output = `` `` `` = Third-Party Service = This plugin optionally fetches an extended language list from **https://app.seo-hreflang.com/api/languages** to supplement its built-in language database. The request is made at most once every 12 hours. No personal data, user data, or site content is transmitted — the request contains no body payload. The result is cached locally using the WordPress Transients API. If the external service is unavailable, the plugin automatically falls back to its built-in list of 180+ languages and continues to work normally. * Service URL: https://app.seo-hreflang.com/ * Privacy Policy: https://seo-hreflang.com/privacy-policy/ == Installation == 1. In your WordPress dashboard, go to **Plugins > Add New** 2. Search for **Hreflang Customizer** 3. Click **Install Now**, then **Activate** 4. Go to **Hreflang > Settings** and select your target languages 5. Click **Save Languages** — hreflang tags will appear in your site's `` immediately Alternatively, download the zip and upload via **Plugins > Add New > Upload Plugin**. == Frequently Asked Questions == = Do I need a translation plugin? = No. The plugin works standalone. It outputs hreflang tags pointing to your current page URLs. If you also use Weglot, it will automatically map Weglot's translated URLs instead. = Which translation plugins are supported? = Currently Weglot is fully supported in addition to standalone mode. Support for WPML, TranslatePress and Polylang is planned for a future release. = What is x-default? = `x-default` is a special hreflang value that tells Google which page to show when no other language matches the user's browser language. When selected, it points to your site's home URL. = Does the plugin make external requests? = Yes, optionally. It requests a language list from https://app.seo-hreflang.com/api/languages and caches the result for 12 hours. If the server is unreachable, the built-in language list is used. No user or site data is sent. = What are the minimum requirements? = WordPress 5.8 or higher and PHP 5.6.20 or higher. == Screenshots == 1. Settings page — searchable language card grid with sidebar tag panel. 2. Selected languages shown as tag chips with the hreflang code badge. 3. System status page with environment diagnostics. == Changelog == = 1.1.0 = * Plugin is now fully free — no premium tier * Added standalone mode: hreflang tags work without any translation plugin * Added Weglot integration for translated URL mapping * Completely redesigned admin UI with searchable language grid * Language codes now shown as badge chips on selected tags * Built-in static language fallback (180+ languages) when API is unavailable * Added "Buy me a coffee" donate link * Fixed: CSS/JS now loads reliably on all server configurations * Fixed: all WordPress.org security requirements (sanitize, escape, validate) * Removed: premium/pro version references * Removed: Select2 dependency = 1.0.0 = * Initial release. == Upgrade Notice == = 1.1.0 = Major free release. Standalone mode, redesigned UI, improved security. Recommended for all users.