{"id":267628,"date":"2025-12-17T20:22:59","date_gmt":"2025-12-17T20:22:59","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/easy-xml-sitemap\/"},"modified":"2026-01-01T22:33:47","modified_gmt":"2026-01-01T22:33:47","slug":"easy-xml-sitemap","status":"publish","type":"plugin","link":"https:\/\/kea.wordpress.org\/plugins\/easy-xml-sitemap\/","author":13642320,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.1.1","stable_tag":"2.1.1","tested":"6.9.4","requires":"5.0","requires_php":"7.2","requires_plugins":null,"header_name":"Easy XML Sitemap","header_author":"Andr\u00e9 Moura","header_description":"Lightweight, modular XML sitemap generator for posts, pages, taxonomies, and Google News.","assets_banners_color":"","last_updated":"2026-01-01 22:33:47","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/ko-fi.com\/andremouradev","header_plugin_uri":"https:\/\/wordpress.andremoura.com","header_author_uri":"https:\/\/www.andremoura.com","rating":5,"author_block_rating":0,"active_installs":0,"downloads":316,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"andremoura","date":"2025-12-17 20:22:44"},"1.1.1":{"tag":"1.1.1","author":"andremoura","date":"2025-12-17 20:42:39"},"1.1.2":{"tag":"1.1.2","author":"andremoura","date":"2025-12-17 22:11:37"},"1.1.3":{"tag":"1.1.3","author":"andremoura","date":"2025-12-17 22:23:39"},"1.2":{"tag":"1.2","author":"andremoura","date":"2025-12-19 09:24:14"},"1.2.1":{"tag":"1.2.1","author":"andremoura","date":"2025-12-19 17:28:37"},"2.0.0":{"tag":"2.0.0","author":"andremoura","date":"2025-12-20 07:53:25"},"2.0.1":{"tag":"2.0.1","author":"andremoura","date":"2025-12-20 22:09:24"},"2.0.2":{"tag":"2.0.2","author":"andremoura","date":"2025-12-21 19:03:51"},"2.0.3":{"tag":"2.0.3","author":"andremoura","date":"2025-12-21 21:57:10"},"2.1.1":{"tag":"2.1.1","author":"andremoura","date":"2026-01-01 22:33:47"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3422350,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3422350,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0","1.1.1","1.1.2","1.1.3","1.2","1.2.1","2.0.0","2.0.1","2.0.2","2.0.3","2.1.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Main Settings tab (sitemap selection and posts organization)","2":"Post Types tab (enable\/disable CPTs)","3":"Media tab (image and video options)","4":"Status tab (technical diagnostics and ping results)","5":"Advanced tab (robots.txt, cache duration, automatic ping)"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[4865,186,1557,23216,6358],"plugin_category":[55],"plugin_contributors":[251984],"plugin_business_model":[],"class_list":["post-267628","plugin","type-plugin","status-publish","hentry","plugin_tags-image-sitemap","plugin_tags-seo","plugin_tags-sitemap","plugin_tags-video-sitemap","plugin_tags-xml-sitemap","plugin_category-seo-and-marketing","plugin_contributors-andremoura","plugin_committers-andremoura"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/easy-xml-sitemap\/assets\/icon-128x128.png?rev=3422350","icon_2x":"https:\/\/ps.w.org\/easy-xml-sitemap\/assets\/icon-256x256.png?rev=3422350","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Easy XML Sitemap is a lightweight and extensible XML sitemap plugin for WordPress.<\/p>\n\n<p>It generates a sitemap index and multiple sitemap endpoints, supports all public custom post types, and can include images and videos inside each URL entry (Google extensions). It also provides a Status page with technical statistics (generation time, URL counts, hits, and ping results) so you can quickly confirm that everything is working.<\/p>\n\n<p>The plugin is designed to be safe in real-world WordPress setups:\n- It uses caching for performance\n- It supports large sites via sitemap index and posts organization options\n- It includes WP-CLI commands for maintenance\n- It pings search engines on updates with debounce to avoid excessive requests\n- It detects when Yoast SEO or Rank Math are active and warns you clearly, without automatically overriding other plugins<\/p>\n\n<p>Main sitemap index URL:\n- \/easy-sitemap\/sitemap.xml<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Sitemap Index at <code>\/easy-sitemap\/sitemap.xml<\/code><\/li>\n<li>Supports all public Custom Post Types (CPTs) with UI controls<\/li>\n<li>Posts can be organized as:\n\n<ul>\n<li>Single sitemap (all posts in one file)<\/li>\n<li>By date (one sitemap per month\/year)<\/li>\n<li>By category (one sitemap per category)<\/li>\n<\/ul><\/li>\n<li>Image sitemap extension:\n\n<ul>\n<li>Featured images<\/li>\n<li>Images found in post content<\/li>\n<\/ul><\/li>\n<li>Video sitemap extension (conservative and safe):\n\n<ul>\n<li>YouTube embeds supported with reliable thumbnails<\/li>\n<li>Self-hosted video supported when thumbnail is available<\/li>\n<li>Vimeo supported only when a reliable thumbnail is available (fallback strategy)<\/li>\n<\/ul><\/li>\n<li>Automatic ping to search engines on content update (debounced)<\/li>\n<li>Status page with technical sitemap statistics and ping results<\/li>\n<li>WP-CLI commands: status, regenerate, clear-cache<\/li>\n<li>robots.txt integration (adds sitemap URL to the virtual robots.txt)<\/li>\n<li>Per-post exclusion controls (existing feature preserved)<\/li>\n<\/ul>\n\n<h3>Sitemap Endpoints<\/h3>\n\n<p>Sitemap index:\n- <code>\/easy-sitemap\/sitemap.xml<\/code><\/p>\n\n<p>Legacy endpoints (still supported):\n- <code>\/easy-sitemap\/posts-index.xml<\/code>\n- <code>\/easy-sitemap\/posts-YYYY-MM.xml<\/code> (when organizing posts by date)\n- <code>\/easy-sitemap\/posts-{category-slug}.xml<\/code> (when organizing posts by category)\n- <code>\/easy-sitemap\/pages.xml<\/code>\n- <code>\/easy-sitemap\/tags.xml<\/code>\n- <code>\/easy-sitemap\/categories.xml<\/code>\n- <code>\/easy-sitemap\/general.xml<\/code>\n- <code>\/easy-sitemap\/news.xml<\/code><\/p>\n\n<p>Custom post type sitemaps (v2.0.0):\n- <code>\/easy-sitemap\/{posttype}.xml<\/code> (example: <code>\/easy-sitemap\/product.xml<\/code>)<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/easy-xml-sitemap\/<\/code>, or install the plugin through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Go to Settings \u2192 Easy Sitemap.<\/li>\n<li>Configure which post types should be included.<\/li>\n<li>Visit <code>\/easy-sitemap\/sitemap.xml<\/code> to confirm output.<\/li>\n<\/ol>\n\n<p>If you change permalink structure or install the plugin on an existing site, you may need to:\n- click \"Regenerate All Sitemaps\" in the settings page, or\n- run WP-CLI commands (see FAQ)<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id='where%20is%20the%20sitemap%3F'><h3>Where is the sitemap?<\/h3><\/dt>\n<dd><p>The main sitemap index is:\n- <code>\/easy-sitemap\/sitemap.xml<\/code><\/p>\n\n<p>This index lists all enabled sitemap endpoints.<\/p><\/dd>\n<dt id='does%20it%20support%20custom%20post%20types%3F'><h3>Does it support Custom Post Types?<\/h3><\/dt>\n<dd><p>Yes. In v2.0.0 you can enable\/disable all public custom post types in Settings \u2192 Easy Sitemap \u2192 Post Types.\nEach enabled post type is published at:\n- <code>\/easy-sitemap\/{posttype}.xml<\/code><\/p><\/dd>\n<dt id='can%20it%20include%20images%20in%20the%20sitemap%3F'><h3>Can it include images in the sitemap?<\/h3><\/dt>\n<dd><p>Yes. Enable \"Include Images\" in Settings \u2192 Easy Sitemap \u2192 Media.\nThe plugin includes:\n- Featured images\n- Images found in post content (<code>&lt;img src=\"...\"&gt;<\/code>)<\/p><\/dd>\n<dt id='can%20it%20include%20videos%20in%20the%20sitemap%3F'><h3>Can it include videos in the sitemap?<\/h3><\/dt>\n<dd><p>Yes, but this is intentionally conservative to avoid generating invalid video sitemap entries.\nEnable \"Include Videos\" in Settings \u2192 Easy Sitemap \u2192 Media.<\/p>\n\n<p>Notes:\n- YouTube embeds are supported with reliable thumbnails.\n- Self-hosted video can be included when a thumbnail is available.\n- Vimeo thumbnails require API access; this plugin avoids external dependencies and only includes Vimeo when a reliable thumbnail is available (fallback uses featured image when possible).<\/p><\/dd>\n<dt id='why%20does%20it%20say%20it%20detected%20yoast%20seo%20or%20rank%20math%3F%20will%20there%20be%20conflicts%3F'><h3>Why does it say it detected Yoast SEO or Rank Math? Will there be conflicts?<\/h3><\/dt>\n<dd><p>Yoast SEO and Rank Math often generate their own sitemaps.\nRunning multiple sitemaps can confuse site owners and crawlers.<\/p>\n\n<p>Easy XML Sitemap:\n- does NOT disable Yoast\/Rank Math automatically\n- does NOT override their settings\n- does NOT intercept their sitemap URLs\n- simply warns you clearly so you can choose which sitemap to use<\/p>\n\n<p>Recommendation:\nUse only one sitemap solution and submit the chosen sitemap in Google Search Console.<\/p><\/dd>\n<dt id='does%20the%20plugin%20ping%20search%20engines%20automatically%3F'><h3>Does the plugin ping search engines automatically?<\/h3><\/dt>\n<dd><p>Yes. When enabled (Advanced tab), the plugin pings search engines after content updates.\nIt uses a debounce delay so that multiple updates in a short time trigger only one ping.<\/p>\n\n<p>You can configure:\n- enable\/disable auto ping\n- choose engines (Google\/Bing)\n- debounce delay (minutes)<\/p><\/dd>\n<dt id='what%20does%20the%20status%20page%20show%3F'><h3>What does the Status page show?<\/h3><\/dt>\n<dd><p>Settings \u2192 Easy Sitemap \u2192 Status shows technical diagnostics:\n- last generation timestamp\n- URL count from last generation\n- generation time\n- total hits and hits by endpoint type\n- last ping time, engine and status<\/p>\n\n<p>This is not SEO analytics \u2014 it is technical health information.<\/p><\/dd>\n<dt id='what%20wp-cli%20commands%20are%20available%3F'><h3>What WP-CLI commands are available?<\/h3><\/dt>\n<dd><p>The plugin provides a minimal set of WP-CLI commands:<\/p>\n\n<ul>\n<li><p><code>wp easy-sitemap status<\/code>\nShows last generation stats and hit counters.<\/p><\/li>\n<li><p><code>wp easy-sitemap regenerate<\/code>\nClears cache so the sitemap is regenerated on next request.<\/p><\/li>\n<li><p><code>wp easy-sitemap clear-cache<\/code>\nClears cache immediately.<\/p><\/li>\n<\/ul>\n\n<p>These are useful after large imports, deployments, or troubleshooting.<\/p><\/dd>\n<dt id='does%20it%20affect%20robots.txt%3F'><h3>Does it affect robots.txt?<\/h3><\/dt>\n<dd><p>If enabled, the plugin adds the sitemap index URL to WordPress' virtual robots.txt output.\nThis does not modify a physical robots.txt file on disk.<\/p><\/dd>\n<dt id='my%20sitemap%20returns%20404.%20what%20should%20i%20do%3F'><h3>My sitemap returns 404. What should I do?<\/h3><\/dt>\n<dd><p>Most common causes:\n1) Permalink rules not flushed\n2) Cached rewrite rules on the site<\/p>\n\n<p>Fix:\n- Go to Settings \u2192 Permalinks and click \"Save\" (without changes), or\n- Use the \"Regenerate All Sitemaps\" button, or\n- Run <code>wp rewrite flush --hard<\/code> and <code>wp easy-sitemap regenerate<\/code><\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Added Custom Post Type support with UI controls<\/li>\n<li>Added Image sitemap support (featured + content images)<\/li>\n<li>Added Video sitemap support (conservative and safe)<\/li>\n<li>Added Status page with sitemap technical statistics<\/li>\n<li>Added WP-CLI commands (status, regenerate, clear-cache)<\/li>\n<li>Added automatic ping to search engines on content updates (debounced)<\/li>\n<li>Added safe compatibility UX for Yoast SEO and Rank Math (notice only; no overrides)<\/li>\n<li>Refactored rewrite rules and routing for CPT endpoints<\/li>\n<li>Settings UI reorganized into tabs for clarity<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Posts organization options: single\/date\/category<\/li>\n<li>Dynamic posts index with date and category sitemap endpoints<\/li>\n<li>Settings UI improvements<\/li>\n<li>Cache invalidation improvements and rewrite rules fixes<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Plugin icons for WordPress.org directory<\/li>\n<li>Enhanced visual branding<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Sitemap index at \/easy-sitemap\/sitemap.xml<\/li>\n<li>robots.txt integration and admin enhancements<\/li>\n<li>Base path changed to \/easy-sitemap\/<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Multiple sitemap types (posts, pages, tags, categories, general, news)<\/li>\n<li>Exclusion controls and caching<\/li>\n<\/ul>","raw_excerpt":"Easy XML Sitemap is a lightweight XML sitemap generator with custom post type support, image and video extensions, WP-CLI, and automatic ping.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/267628","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=267628"}],"author":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/andremoura"}],"wp:attachment":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=267628"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=267628"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=267628"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=267628"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=267628"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=267628"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}