All Projects → samdark → Sitemap

samdark / Sitemap

Licence: bsd-3-clause
Sitemap and sitemap index builder

Labels

Projects that are alternatives of or similar to Sitemap

sitemap-checker
a tool for validate xml sitemap and sitemap index files for broken links
Stars: ✭ 21 (-95.46%)
Mutual labels:  sitemap
jlsitemap
JL Sitemap - Component sitemap for Joomla
Stars: ✭ 20 (-95.68%)
Mutual labels:  sitemap
Pa11y Ci
Pa11y CI is a CI-centric accessibility test runner, built using Pa11y
Stars: ✭ 291 (-37.15%)
Mutual labels:  sitemap
plugins
Elder.js plugins and community plugins.
Stars: ✭ 80 (-82.72%)
Mutual labels:  sitemap
sitemap
A simple sitemap generator for Laravel Framework.
Stars: ✭ 32 (-93.09%)
Mutual labels:  sitemap
strapi-plugin-sitemap
🔌 Generate a highly customizable sitemap XML in Strapi CMS
Stars: ✭ 136 (-70.63%)
Mutual labels:  sitemap
Sitemap
Bolt Sitemap extension - create XML sitemaps for your Bolt website.
Stars: ✭ 19 (-95.9%)
Mutual labels:  sitemap
Nextjs Sitemap Generator
Generate sitemap.xml from nextjs pages
Stars: ✭ 395 (-14.69%)
Mutual labels:  sitemap
yii2-sitemap
A Yii2 extension to generate sitemap files for large web-sites in console
Stars: ✭ 31 (-93.3%)
Mutual labels:  sitemap
Sitemap Php
Library for generating Google sitemap XML files
Stars: ✭ 289 (-37.58%)
Mutual labels:  sitemap
sitemap-plugin
Sitemap Plugin for Sylius eCommerce platform
Stars: ✭ 68 (-85.31%)
Mutual labels:  sitemap
sitewriter
A rust library to generate sitemaps.
Stars: ✭ 18 (-96.11%)
Mutual labels:  sitemap
Prestasitemapbundle
A symfony bundle that provides tools to build a rich application sitemap. The main goals are : simple, no databases, various namespace (eg. google image), respect constraints etc.
Stars: ✭ 272 (-41.25%)
Mutual labels:  sitemap
gatsby-blog-mdx
A ready-to-use, customizable personal blog with minimalist design
Stars: ✭ 61 (-86.83%)
Mutual labels:  sitemap
Supercrawler
A web crawler. Supercrawler automatically crawls websites. Define custom handlers to parse content. Obeys robots.txt, rate limits and concurrency limits.
Stars: ✭ 306 (-33.91%)
Mutual labels:  sitemap
TrollHunter
Twitter Troll & Fake News Hunter - Crawls news websites and twitter to identify fake news
Stars: ✭ 38 (-91.79%)
Mutual labels:  sitemap
SitemapTools
A sitemap (sitemap.xml) querying and parsing library for .NET
Stars: ✭ 19 (-95.9%)
Mutual labels:  sitemap
Next Sitemap
Sitemap generator for next.js. Generate sitemap(s) and robots.txt for all static/pre-rendered/dynamic/server-side pages.
Stars: ✭ 426 (-7.99%)
Mutual labels:  sitemap
Squzy
Squzy - is a high-performance open-source monitoring, incident and alert system written in Golang with Bazel and love.
Stars: ✭ 359 (-22.46%)
Mutual labels:  sitemap
Sitemap Generator
Easily create XML sitemaps for your website.
Stars: ✭ 273 (-41.04%)
Mutual labels:  sitemap

Sitemap

Sitemap and sitemap index builder.

Features

  • Create sitemap files: either regular or gzipped.
  • Create multi-language sitemap files.
  • Create sitemap index files.
  • Automatically creates new file if either URL limit or file size limit is reached.
  • Fast and memory efficient.

Installation

Installation via Composer is very simple:

composer require samdark/sitemap

After that, make sure your application autoloads Composer classes by including vendor/autoload.php.

How to use it

use samdark\sitemap\Sitemap;
use samdark\sitemap\Index;

// create sitemap
$sitemap = new Sitemap(__DIR__ . '/sitemap.xml');

// add some URLs
$sitemap->addItem('http://example.com/mylink1');
$sitemap->addItem('http://example.com/mylink2', time());
$sitemap->addItem('http://example.com/mylink3', time(), Sitemap::HOURLY);
$sitemap->addItem('http://example.com/mylink4', time(), Sitemap::DAILY, 0.3);

// write it
$sitemap->write();

// get URLs of sitemaps written
$sitemapFileUrls = $sitemap->getSitemapUrls('http://example.com/');

// create sitemap for static files
$staticSitemap = new Sitemap(__DIR__ . '/sitemap_static.xml');

// add some URLs
$staticSitemap->addItem('http://example.com/about');
$staticSitemap->addItem('http://example.com/tos');
$staticSitemap->addItem('http://example.com/jobs');

// write it
$staticSitemap->write();

// get URLs of sitemaps written
$staticSitemapUrls = $staticSitemap->getSitemapUrls('http://example.com/');

// create sitemap index file
$index = new Index(__DIR__ . '/sitemap_index.xml');

// add URLs
foreach ($sitemapFileUrls as $sitemapUrl) {
    $index->addSitemap($sitemapUrl);
}

// add more URLs
foreach ($staticSitemapUrls as $sitemapUrl) {
    $index->addSitemap($sitemapUrl);
}

// write it
$index->write();

Multi-language sitemap

use samdark\sitemap\Sitemap;

// create sitemap
// be sure to pass `true` as second parameter to specify XHTML namespace
$sitemap = new Sitemap(__DIR__ . '/sitemap_multi_language.xml', true);

// Set URL limit to fit in default limit of 50000 (default limit / number of languages) 
$sitemap->setMaxUrls(25000);

// add some URLs
$sitemap->addItem('http://example.com/mylink1');

$sitemap->addItem([
    'ru' => 'http://example.com/ru/mylink2',
    'en' => 'http://example.com/en/mylink2',
], time());

$sitemap->addItem([
    'ru' => 'http://example.com/ru/mylink3',
    'en' => 'http://example.com/en/mylink3',
], time(), Sitemap::HOURLY);

$sitemap->addItem([
    'ru' => 'http://example.com/ru/mylink4',
    'en' => 'http://example.com/en/mylink4',
], time(), Sitemap::DAILY, 0.3);

// write it
$sitemap->write();

Options

There are methods to configure Sitemap instance:

  • setMaxUrls($number). Sets maximum number of URLs to write in a single file. Default is 50000 which is the limit according to specification and most of existing implementations.
  • setMaxBytes($number). Sets maximum size of a single site map file. Default is 10MiB which should be compatible with most current search engines.
  • setBufferSize($number). Sets number of URLs to be kept in memory before writing it to file. Default is 10. Bigger values give marginal benefits. On the other hand when the file size limit is hit, the complete buffer must be written to the next file.
  • setUseIndent($bool). Sets if XML should be indented. Default is true.
  • setUseGzip($bool). Sets whether the resulting sitemap files will be gzipped or not. Default is false. zlib extension must be enabled to use this feature.

There is a method to configure Index instance:

  • setUseGzip($bool). Sets whether the resulting index file will be gzipped or not. Default is false. zlib extension must be enabled to use this feature.

Running tests

In order to run tests perform the following commands:

composer install
./vendor/bin/phpunit
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].