Description
EasyRankly covers the SEO basics of a WordPress site with the tools WordPress already has. It adds no database tables, schedules no background jobs and loads nothing extra for your visitors: the only thing it adds to your pages is their SEO tags and structured data.
What it does
- Titles and descriptions. Templates with variables for every content type, archive and term, with an override on each post, page and term.
- Robots and canonical. Noindex where it belongs (search results, empty archives, password-protected posts, feeds), a canonical URL on every page, and a per-post choice.
- Social sharing. Open Graph and X (Twitter) tags, with an image per post, the featured image or a default image.
- Structured data. One JSON-LD graph per page: Organization, local business or Person, WebSite, WebPage, Article on posts, ProfilePage on author archives and BreadcrumbList.
- Breadcrumb. Uses the WordPress Breadcrumbs block; its structured data follows what the block shows.
- Sitemap. Uses the sitemap built into WordPress and keeps it consistent with the robots rules: only content that can be indexed is listed.
- Robots.txt. Adds your rules to the robots.txt generated by WordPress, without writing files.
- Redirects. 301, 302 and 307, plus 410 (gone) and 451 (unavailable for legal reasons); exact addresses or regular expressions. A redirect is created by itself when you change the address of a published page.
- Custom code. HTML and PHP snippets in the head, after the opening body tag, in the footer or, for PHP, everywhere, with syntax check, revisions and a safe mode.
- Import. Copies the SEO fields of posts and terms from Yoast SEO and Rank Math, and their redirects (Yoast SEO Premium and Rank Math), without overwriting what you already set in EasyRankly.
- Multilingual. Languages with their own address prefix, translations linked to each other, hreflang, a language switcher block, and per-language site title, tagline, template parts and synced patterns. Needs a block theme.
What it does not do
- No content score or real-time readability analysis.
- No 404 log or hit counters.
- No news or video sitemaps, no IndexNow or Google Indexing API.
- No AI features: they belong to EasyRankly Pro, a separate paid plugin.
- No multisite-specific features: on a network, each site has its own settings.
Built on native WordPress APIs
- No custom tables. Everything is stored with WordPress options, meta, post types and taxonomies.
- No cron jobs. Nothing runs in the background on your server.
- No frontend scripts. Your visitors download nothing extra.
Source code
The JavaScript of the admin screens and of the block editor panels ships compiled in the build folder. Its source code is included in the plugin, in the assets/src folder, with package.json and webpack.config.js. To build it yourself, run npm install and npm run build in the plugin folder.
External services
EasyRankly does not connect to any external service.
Installation
- In your WordPress admin, go to Plugins > Add New and search for “EasyRankly”, or upload the zip file there.
- Activate the plugin.
- Open EasyRankly in the admin menu: check the titles, the indexing choices and who the site represents (Schema and social).
- Optional: add languages in EasyRankly > Languages, redirects in EasyRankly > Redirects and snippets in EasyRankly > Custom code.
- Coming from Yoast SEO or Rank Math? Deactivate it, then EasyRankly > Import copies its SEO fields and redirects.
EasyRankly needs WordPress 7.0 and PHP 8.0 or later. Use one SEO plugin at a time: deactivate other SEO plugins before activating EasyRankly.
FAQ
-
Can I use EasyRankly together with another SEO plugin?
-
No. Two SEO plugins print the same tags twice: title, description, canonical and structured data. Deactivate Yoast SEO, Rank Math or any other SEO plugin before activating EasyRankly; EasyRankly > Import copies their SEO fields and redirects.
-
Does it work on multisite?
-
Yes. Each site of the network has its own settings, redirects, snippets and languages, with nothing to set up for the network. There are no network-wide features. Deleting the plugin removes its data from every site of the network.
-
Does EasyRankly collect personal data or send data to external servers?
-
No. It connects to no external service, does not track visitors and stores nothing about them: what it saves is your settings and SEO fields, in your WordPress database.
-
In block themes, create a template part or a synced pattern with the same name followed by the language prefix: “header-en” for “header”, “Banner — EN” for “Banner”. On the English pages it replaces the original. This is also how each language gets its own menu: the Navigation block in “header-en” shows the English menu. Unsynced patterns become a copy where they are inserted, so they are translated with the page of each language.
-
No, each category or tag is the same in every language, with its address in each language. Its SEO title, description and social texts, and its description, are written in the default language: on the pages of the other languages they are ignored and the title and description templates of that language are used.
-
Are classic themes supported?
-
SEO, sitemap, redirects and custom code work with every theme. Two features need a block theme. The breadcrumb uses the WordPress Breadcrumbs block, and its structured data (BreadcrumbList) is printed only when the block is part of the template, which classic themes render after the page head. Multilingual needs a block theme too: with a classic theme, contents, addresses, site title and tagline change with the language, but menus, widgets and texts set in the Customizer show the same text in every language.
-
What does the “Everywhere” position of Custom code do?
-
It runs a PHP snippet as soon as the plugins are loaded, on every request, admin included, like the functions.php of a theme: use it to add or remove hooks. It never runs on the Custom code screen when you open it, so a broken snippet can always be fixed there. What the snippet prints at that moment is dropped. If a snippet locks you out, add
define( 'EASYRANKLY_SAFE_MODE', true );to wp-config.php: no snippet runs until you remove it. -
Who can use PHP snippets?
-
Only users who can edit plugin files (the
edit_pluginscapability, which on a standard site means administrators). PHP snippets are switched off on sites that defineDISALLOW_FILE_EDITorDISALLOW_FILE_MODSin wp-config.php: existing ones stop running and new ones cannot be saved. HTML snippets need theunfiltered_htmlcapability, which administrators have on a single site and only super admins have on a multisite network. -
What happens when a PHP snippet breaks?
-
The code is checked for syntax errors before it is saved, and a snippet that does not parse can be saved only as inactive. If an active snippet throws an error, the error is shown to administrators and the snippet stays on, so visitors cannot switch it off; a fatal error, which breaks the page, switches it off. If a snippet locks you out anyway, add
define( 'EASYRANKLY_SAFE_MODE', true );to wp-config.php: no snippet runs until you remove it. -
How are password-protected posts handled?
-
They are noindex and left out of the sitemap. Their automatic description is empty, so their text never appears in the page source; a description you write for the post yourself is still used.
-
Are empty archives indexed?
-
No. A category, tag, author or post type archive with nothing in it is noindex until it has content. A category or tag with its own description stays indexable, since the description is content.
-
Are feeds and attachment pages indexed?
-
Feeds are never indexed: they send an
X-Robots-Tag: noindex, followheader, so search engines still follow their links. Attachment pages, which show only the uploaded file, are off by default on sites created with WordPress 6.4 or later. On older sites, turn them off in EasyRankly > Indexing: their address then leads to the file. This is the WordPress setting, so it stays as you set it if you remove EasyRankly. -
Does it work with WooCommerce and ACF?
-
Yes, without conflicts. The shop page gives the product archive its SEO title, description and canonical, cart, checkout and account pages stay out of the sitemap, and WooCommerce keeps printing its own Product structured data. Products, and any content edited with the classic editor, get the SEO and Language fields in boxes under the editor. Not supported yet: multilingual stores. With ACF, title and description templates can use a custom field with {{cf:field_name}}; values saved inside ACF blocks are not read.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“EasyRankly” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “EasyRankly” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
2.0.0
- Complete rewrite on native WordPress APIs: titles and descriptions, robots, canonical, social tags, structured data, breadcrumb, sitemap, robots.txt, redirects, custom code and multilingual.
- Requires WordPress 7.0 and PHP 8.0.
- Import of the SEO fields of posts and terms from Yoast SEO and Rank Math, and of their redirects (Yoast SEO Premium and Rank Math) (EasyRankly > Import).
- Settings, SEO fields and redirects of version 1.0.0 are not imported.