Extension:AutoSitemap/th
AutoSitemap Release status: stable |
|
---|---|
Implementation | MyWiki , Page action |
Description | Creates and updates a Sitemap file automatically while any site's page is changing. |
Author(s) | Dolfinus, François Boutines-Vignard, Jehy, Thomas |
Latest version | 1.8.0 (1.3 for MW 1.33 and lower) (2023-02-17) |
MediaWiki | 1.25+ |
Database changes | No |
License | GNU General Public License 3.0 or later |
Download | <translate> Download master snapshot</translate>
<translate> Note:</translate> README |
Example | Generated sitemap |
$wgAutoSitemap |
|
Quarterly downloads | Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin'). |
Public wikis using | Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin'). |
The AutoSitemap extension automatically builds a "sitemap.xml" file at every page create/edit/delete event. Sitemap file helps search engines to observe your site’s pages. This extension is based on the extension ManualSitemap .
Rationale
I do not have the possibility to update my sitemap via scheduler (like cron) because of the hosting provider, and I also do not want to update it manually.
So I edited an existing extension to update the sitemap by itself at any page edit, create, delete, rename, upload, etc events.
หมายเหตุ
This extension can be used on small MediaWiki instances (up to 10k pages). If your instance is larger than 50k pages, you should use GenerateSitemap.php instead because it does support sitemap index file, can create separated files for each namespace, compress sitemap files and also designed to be run on schedule instead of triggering after each page modification.
Install
- <translate> <tvar name=1>Download</tvar> and place the file(s) in a directory called <tvar name=name>
AutoSitemap/th
</tvar> in your <tvar name=ext>extensions/
</tvar> folder.</translate> - <translate> Add the following code at the bottom of your <tvar name=1>LocalSettings.php </tvar> file:</translate>
wfLoadExtension( 'AutoSitemap/th' );
- Make any change of any of your wiki pages, e.g. create a page or update an existing one
- Sitemap file will be generated automatically
- File:OOjs UI icon check-constructive.svg <translate> Done</translate> – <translate> Navigate to <tvar name=special>Special:Version</tvar> on your wiki to verify that the extension is successfully installed.</translate>
Configure
There are some optional parameters that change the sitemap generation. You can set them in your LocalSettings.php.
Filename
You can set filename of sitemap by setting:
$wgAutoSitemap["filename"] = "sitemap.xml"; //default value
Setting base URL
By default all URLs in sitemap use $wgCanonicalServer (or $wgServer, if it doesn’t set) as domain prefix. If you want to set it to another one, you can change it manually by setting:
$wgAutoSitemap["server"] = "https://your-site.com";
Search engines notification
You can notify web sites you want about the update of sitemap. Just write all notify URLs as array:
$wgAutoSitemap["notify"] = [
'https://www.google.com/webmasters/sitemaps/ping?sitemap=https://your-site.com/sitemap.xml',
];
Sometimes web hoster does not allow the fopen command to call URLs (allow_url_fopen=false).
If you can’t or doesn’t want to use notification, set this to empty array by deleting all lines between brackets (= [];
).
Exclude types of pages from sitemap
You can exclude namespaces or exact pages from including them to sitemap:
$wgAutoSitemap["exclude_namespaces"] = [
NS_TALK,
NS_USER,
NS_USER_TALK,
NS_PROJECT_TALK,
NS_IMAGE_TALK,
NS_MEDIAWIKI,
NS_MEDIAWIKI_TALK,
NS_TEMPLATE,
NS_TEMPLATE_TALK,
NS_HELP,
NS_HELP_TALK,
NS_CATEGORY_TALK
]; //default values
$wgAutoSitemap["exclude_pages"] = ['page title to exclude', 'other one'];
If you need to exclude custom namespace from sitemap, pass here namespace ID (integer) instead of name constant.
Set page update frequency
You can manually specify the recommended frequency with which all addresses will be checked by search engine:
$wgAutoSitemap["freq"] = "daily"; //default
Available values are:
hourly daily weekly monthly yearly adjust - for automatic determination of frequency based on page edits count
Set page priority
You can manually specify priority for certain pages or namespaces:
$wgAutoSitemap["priority"] = 0.7;
or
$wgAutoSitemap["priority"][NS_MAIN] = 1;
$wgAutoSitemap["priority"][NS_CATEGORY] = 0.8;
or
$wgAutoSitemap["priority"]['Main page'] = 1;
$wgAutoSitemap["priority"]['Other page'] = 0.8;
Rate-limit recreation of the sitemap
For wikis with many pages, generating the sitemap may consume significant resources, so you may not want it to happen too frequently. With this option, you can specify that the sitemap should only be recreated if it's at least a certain number of seconds old.
$wgAutoSitemap["min_age"] = 3600; // 1 hour, default 0 (no rate-limit)
Use
Permissions
Your MediaWiki folder should be permitted for write operations (chmod +w
with chown apache
or chown nginx
).
Htaccess, Nginx
If you want to see a human-readable sitemap, allow read access for sitemap.xsl file in your site config (.htaccess
file or other).
See also
- w:Sitemaps - Wikipedia about sitemaps
- Google about sitemaps
- Pages with script errors
- Pages with broken file links
- Stable extensions/th
- Personalization extensions/th
- Page action extensions/th
- Extensions with manual MediaWiki version
- GPL licensed extensions/th
- Extensions in GitHub version control/th
- AfterImportPage extensions/th
- PageDeleteComplete extensions/th
- ArticleUndelete extensions/th
- PageMoveComplete extensions/th
- ArticleMergeComplete extensions/th
- UploadComplete extensions/th
- RevisionUndeleted extensions/th
- RevisionRecordInserted extensions/th
- PageSaveComplete extensions/th
- All extensions/th
- Extensions not in ExtensionJson
- Sitemap extensions/th