Download the PHP package raiolanetworks/plugin-seo-test without Composer
On this page you can find all versions of the php package raiolanetworks/plugin-seo-test. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download raiolanetworks/plugin-seo-test
More information about raiolanetworks/plugin-seo-test
Files in raiolanetworks/plugin-seo-test
Package plugin-seo-test
Short Description This Composer package provides a seamless integration for testing SEO aspects of your Laravel applications. Compatible with both Pest and PHPUnit, it offers a collection of tools and assertions specifically designed to evaluate on-page SEO elements like meta tags, title tags, canonical URLs, and structured data. By automating SEO testing, this plugin ensures that your application consistently adheres to best SEO practices, helping you catch potential SEO issues early in the development cycle.
License MIT
Homepage https://github.com/RaiolaNetworks/plugin-seo-test
Informations about the package plugin-seo-test
Plugin SEO Test
This Composer package provides a seamless integration for testing SEO aspects of your Laravel applications. Compatible with both Pest and PHPUnit, it offers a collection of tools and assertions specifically designed to evaluate on-page SEO elements like meta tags, title tags, canonical URLs, and structured data. By automating SEO testing, this plugin ensures that your application consistently adheres to best SEO practices, helping you catch potential SEO issues early in the development cycle.
Get to know us
Installation
- Installation
- Usage
- PHPUnit
- Laravel
- Pest
- API
- SEO Data
- Assertions
- Snapshot testing
Installation
You can install the package via composer:
Usage
Look at the following examples using PHPUnit, Laravel, and Pest.
PHPUnit
Laravel
Pest
SEO Data
You can access the SEO Data yourself by accessing the public property TestSEO->data
.
Here are the available methods:
Method | Returns | Description |
---|---|---|
title() |
?string |
<title>{this}</title> |
description() |
?string |
<meta name="description" content="{this}"> |
image() |
?Url π |
<meta name="image" content="{this}"> |
robots() |
Robots π |
<meta name="robots" content="{this}"> |
canonical() |
?Url π |
<link rel="canonical" href="{this}"> |
prev() |
?Url π |
<link rel="prev" href="{this}"> |
next() |
?Url π |
<link rel="next" href="{this}"> |
openGraph() |
TagCollection π |
<meta property="og:{key}" content="{value}"> |
twitter() |
TagCollection π |
<meta name="twitter:{key}" content="{value}"> |
alternateHrefLang() |
AlternateHrefLangCollection π |
<link name="alternate" hreflang="{hreflang}" href={href}> |
images() |
array<array{src: string, alt: string, title: string}> |
All images in the page. <img src="..."> |
h1s() |
array<string> |
All H1 in the page. <h1>{this}</h1> |
h2s() |
array<string> |
All H2 in the page. <h2>{this}</h2> |
charset() |
?string |
<meta charset="utf-8"> |
The SEOData class is Macroable, so feel free to extend it yourself.
Assertions
Method | Notes |
---|---|
assertCanonicalIs(string $expected) |
|
assertCanonicalIsEmpty() |
|
assertRobotsIsEmpty() |
|
assertRobotsIsNoIndexNoFollow() |
Checks that the robots are noindex, nofollo or none |
assertPaginationIsEmpty() |
prev and next are both missing. |
assertAlternateHrefLangIsEmpty() |
|
assertTitleIs(string $expected) |
|
assertTitleContains(string $expected) |
|
assertTitleEndsWith(string $expected) |
|
assertDescriptionIs(string $expected) |
|
assertThereIsOnlyOneH1() |
Make sure there is only one H1 in the entire website. |
assertAllImagesHaveAltText() |
Make sure all images have an alt="..." |
Suggest your own! | These assertions can help devs to follow the best SEO practices. Make a PR if you think some are missing! |
Snapshots
When it comes to SEO, a snapshot test is a great way to ensure nothing has been changed by accident.
Here is an example:
By default, the SEO tags are serialized using the SimpleSerializer
.
Make your own serializer by implementing the SnapshotSerializer
interface:
Pest Example
Note: this example requires spatie/pest-plugin-snapshots
.
Contributing
Please see CONTRIBUTING for details.
Credits
Credits to the original project
License
The MIT License (MIT). Please see License File for more information.
All versions of plugin-seo-test with dependencies
illuminate/macroable Version ^7.0|^8.0|^9.0|^10.0|^11.0
phpunit/phpunit Version ^8.3|^9.0|^10.0
spatie/url Version ^1.3.4|^2.0
symfony/dom-crawler Version ^5.4|^6.1