📄 محتوای کامل
یکی از رایجترین خطاهای سایت مپ (Sitemap) در وردپرس، ارور "XML declaration allowed only at the start of the document" است. این خطا در افزونههای Yoast SEO، Google XML Sitemaps، Rank Math و سایر پلاگینها رخ میدهد. در این آموزش، قدمبهقدم این مشکل را حل میکنیم.
💡 نکته: این خطا معمولاً به دلیل وجود فضای خالی (Whitespace) یا کاراکتر BOM قبل از تگ <?xml ایجاد میشود. برای تست سریع سایت مپ خود، از یک سرور مجازی فرانسه پرسرعت استفاده کنید.
This page contains the following errors:
error on line 2 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.
شروع آموزش رفع خطا
خرید سرور مجازی
XML Sitemap Fix
WordPress Fix
Sitemap XML
علت خطا
آموزش رفع
روشهای جایگزین
سرور مجازی
سوالات متداول
ریشهیابی مشکل
علت خطای XML declaration allowed only at the start چیست؟
قبل از رفع خطا، باید بدانید چرا این مشکل رخ میدهد تا از بروز مجدد آن جلوگیری کنید.
فضای خالی (Whitespace) اضافی
وجود فضای خالی، Enter یا خط خالی قبل از تگ <?php یا بعد از تگ ?> در فایلهای PHP وردپرس، باعث ارسال کاراکترهای اضافی قبل از خروجی XML میشود.
کاراکتر BOM (Byte Order Mark)
برخی ویرایشگرهای متن، کاراکتر نامرئی BOM (UTF-8 BOM) را در ابتدای فایلها ذخیره میکنند. این کاراکتر قبل از <?xml قرار گرفته و باعث ارور میشود.
افزونه یا قالب معیوب
برخی افزونهها یا قالبهای وردپرس فضای خالی اضافی در فایلهای PHP خود دارند. فایلهای functions.php، wp-config.php و فایلهای افزونهها مظنون اصلی هستند.
روش اصلی: حل مشکل خطای XML سایت مپ با فایل whitespacefix.php
این روش بدون نیاز به شناسایی فایل مشکلدار، تمامی فضاهای خالی اضافی را از خروجی XML حذف میکند.
۱ورود به فایل منیجر هاست (cPanel / DirectAdmin)
وارد پنل مدیریت هاست خود شوید و File Manager را باز کنید. به مسیر ریشه وردپرس بروید (معمولاً public_html) — جایی که فایل wp-config.php قرار دارد.
ایجاد فایل whitespacefix.php
در مسیر ریشه وردپرس (کنار فایل index.php)، یک فایل جدید با نام whitespacefix.php بسازید و کد زیر را در آن قرار دهید:
<?php
function ___wejns_wp_whitespace_fix($input) {
$allowed = false;
$found = false;
foreach (headers_list() as $header) {
if (preg_match(
"/^content-type:\\s+(text\\/|application\\/((xhtml|atom|rss)\\+xml|xml))/i",
$header
)) {
$allowed = true;
}
if (preg_match("/^content-type:\\s+/i", $header)) {
$found = true;
}
}
if ($allowed || !$found) {
return preg_replace("/\\A\\s*/m", "", $input);
} else {
return $input;
}
}
ob_start("___wejns_wp_whitespace_fix");
?>
📌 توضیح کد: این تابع تمامی فضاهای خالی ابتدای خروجی XML را حذف میکند، بدون اینکه روی محتوای HTML سایت تاثیری بگذارد.
۳
ویرایش فایل index.php وردپرس
فایل index.php در ریشه وردپرس را باز کنید و خط زیر را بلافاصله بعد از تگ <?php اضافه کنید:
include('whitespacefix.php');
فایل index.php نهایی شما باید به شکل زیر باشد:
<?php
include('whitespacefix.php');
/**
* Front to the WordPress application. This file doesn't do
* anything, but loads wp-blog-header.php which does and
* tells WordPress to load the theme.
*
* @package WordPress
*/
define( 'WP_USE_THEMES', true );
/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-blog-header.php';
۴
ذخیره تغییرات و تست سایت مپ
تغییرات را ذخیره کنید و سپس:
- لینک سایت مپ خود را در مرورگر باز کنید (مثلاً:
yoursite.com/sitemap_index.xml) - اگر از Yoast SEO استفاده میکنید:
yoursite.com/sitemap_index.xml - اگر از Rank Math استفاده میکنید:
yoursite.com/sitemap_index.xml - اگر از Google XML Sitemaps استفاده میکنید:
yoursite.com/sitemap.xml - کش مرورگر و سایت را پاک کنید (
Ctrl+Shift+R)
سایر روشهای رفع خطای XML سایت مپ وردپرس
اگر روش اصلی مشکل شما را حل نکرد، این روشهای تکمیلی را امتحان کنید.
بررسی فایل wp-config.php
فایل wp-config.php را باز کنید. مطمئن شوید هیچ فضای خالی، خط خالی یا کاراکتری قبل از <?php و بعد از آخرین ?> (در صورت وجود) نیست. بهتر است تگ بسته ?> را حذف کنید.
بررسی functions.php قالب
فایل functions.php قالب فعال خود را بررسی کنید. فضای خالی بعد از ?> حذف کنید یا کلاً تگ بسته PHP را حذف کنید. این رایجترین منبع فضای خالی اضافی است.
غیرفعال کردن افزونهها
تمامی افزونهها را غیرفعال کنید و سایت مپ را تست کنید. سپس یکییکی فعال کنید تا افزونه مشکلساز را پیدا کنید. افزونههای امنیتی و کش معمولاً مظنون اصلی هستند.
حذف BOM با ویرایشگر مناسب
فایلها را با ویرایشگر Notepad++ باز کنید. از منوی Encoding گزینه "Encode in UTF-8" (بدون BOM) را انتخاب کنید و ذخیره کنید. این کار BOM نامرئی را حذف میکند.
سرور مجازی فرانسه نگارنوین – بهترین بستر برای وردپرس
برای اجرای بهینه وردپرس و جلوگیری از مشکلات فنی، نیاز به یک سرور قدرتمند دارید. سرور مجازی فرانسه نگارنوین با هارد NVMe فوقسریع، بهترین انتخاب برای وبمسترهای حرفهای است.
- ترافیک نامحدود با پورت 10 گیگ
- هارد SSD NVMe فوقسریع
- منابع کاملاً اختصاصی (CPU/RAM DDR4)
- پشتیبانی 24X7 حتی روزهای تعطیل
- آپتایم ۱۰۰٪ · پنل تحت وب قدرتمند
- کف قیمت بازار · کلیه سیستمعاملها و کنترل پنلها
بهترین سرور مجازی برای وردپرس و پروژههای شما 🚀
هارد NVMe · ترافیک نامحدود · پورت 10G · پشتیبانی ۲۴ ساعته
ماهانه سالانه (تخفیف ویژه) نمایش تعرفه: ماهانه پلن ۱استارتر
اقتصادی [PriceKit pid=878 period=1][PriceKit pid=878 period=4]تومان / ماهانه- Ram4GB DDR4
- CPU2 Cores
- Storage30G NVMe
- BandwidthUnlimited
- Port10G
پیشرفته
کاربردی [PriceKit pid=879 period=1][PriceKit pid=879 period=4]تومان / ماهانه- Ram6GB DDR4
- CPU4 Cores
- Storage40G NVMe
- BandwidthUnlimited
- Port10G
استاندارد
پرفروش [PriceKit pid=880 period=1][PriceKit pid=881 period=4]تومان / ماهانه- Ram10GB DDR4
- CPU6 Cores
- Storage50G NVMe
- BandwidthUnlimited
- Port10G
تجاری
منابع بالا [PriceKit pid=881 period=1][PriceKit pid=881 period=4]تومان / ماهانه- Ram12GB DDR4
- CPU6 Cores
- Storage60G NVMe
- BandwidthUnlimited
- Port10G
پربازدید
ویژه [PriceKit pid=882 period=1][PriceKit pid=882 period=4]تومان / ماهانه- Ram16GB DDR4
- CPU8 Cores
- Storage70G NVMe
- BandwidthUnlimited
- Port10G
Enterprise
قدرتمند [PriceKit pid=883 period=1][PriceKit pid=883 period=4]تومان / ماهانه- Ram24GB DDR4
- CPU12 Cores
- Storage80G NVMe
- BandwidthUnlimited
- Port10G
Ultra
هایپر [PriceKit pid=1072 period=1][PriceKit pid=1072 period=4]تومان / ماهانه- Ram32GB DDR4
- CPU12 Cores
- Storage90G NVMe
- BandwidthUnlimited
- Port10G
Hyper
V.I.P [PriceKit pid=884 period=1][PriceKit pid=884 period=4]تومان / ماهانه- Ram32GB DDR4
- CPU16 Cores
- Storage100G NVMe
- BandwidthUnlimited
- Port10G
سوالات متداول حل مشکل خطای XML سایت مپ
خطای "XML declaration allowed only at the start of the document" چیست؟ این خطا زمانی رخ میدهد که کاراکترهای اضافی (فضای خالی، خط خالی یا BOM) قبل از اعلان<?xml version="1.0"?> در خروجی سایت مپ وجود داشته باشد. مرورگر و موتورهای جستجو نمیتوانند فایل XML را پردازش کنند و خطا نمایش میدهند. این مشکل در تمامی افزونههای سایت مپ وردپرس از جمله Yoast SEO، Rank Math و Google XML Sitemaps رخ میدهد.
آیا این خطا روی سئوی سایت تاثیر منفی دارد؟
بله! وقتی سایت مپ خطا داشته باشد، گوگل نمیتواند صفحات سایت شما را از طریق سایت مپ کشف و ایندکس کند. این مسئله میتواند باعث تاخیر در ایندکس شدن صفحات جدید، عدم شناسایی تغییرات و در نهایت کاهش رتبه سئو شود. رفع این خطا از اولویتهای فنی سئو محسوب میشود.
آیا فایل whitespacefix.php روی عملکرد سایت تاثیر منفی دارد؟
خیر! این اسکریپت فقط روی خروجیهای XML (سایت مپ، فید RSS و...) عمل میکند و فضاهای خالی ابتدایی را حذف میکند. روی صفحات HTML سایت شما هیچ تاثیری نمیگذارد و سربار عملکردی آن بسیار ناچیز است.
بعد از آپدیت وردپرس، آیا تغییرات پاک میشود؟
فایل whitespacefix.php معمولاً پاک نمیشود، اما فایل index.php ممکن است با آپدیت وردپرس بازنویسی شود. در این صورت، فقط کافیست خط include('whitespacefix.php'); را مجدداً به index.php اضافه کنید. توصیه میکنیم بعد از هر آپدیت وردپرس، سایت مپ را بررسی کنید.
این روش روی تمامی هاستها و سرورها کار میکند؟
بله! این روش روی تمامی هاستهای اشتراکی، سرورهای مجازی و سرورهای اختصاصی با PHP 7.4 به بالا کار میکند. برای بهترین عملکرد وردپرس، استفاده از سرور مجازی فرانسه نگارنوین با هارد NVMe و منابع اختصاصی توصیه میشود.
چطور از بروز مجدد این خطا جلوگیری کنم؟
۱) همیشه از ویرایشگرهای حرفهای مثل VS Code یا Notepad++ استفاده کنید. ۲) فایلها را با Encoding UTF-8 بدون BOM ذخیره کنید. ۳) در فایلهای PHP، تگ بسته ?> را حذف کنید (این یک Best Practice در PHP است). ۴) قبل از نصب هر افزونه یا قالب جدید، سایت مپ را تست کنید.
نگارنوین در کنار شماست
نیاز به سرور مجازی قدرتمند برای وردپرس دارید؟
با سرور مجازی فرانسه نگارنوین وردپرس خود را روی بهترین زیرساخت ابری اجرا کنید. هارد NVMe، ترافیک نامحدود، منابع اختصاصی و پشتیبانی ۲۴ ساعته!
خرید سرور مجازی فرانسه مشاوره رایگان