軽量な国産SEOプラグインとして人気があるSEO SIMPLE PACKがあります。
SEO SIMPLE PACKはSWELL作者が作ってるのでSWELLユーザーは使っている人が多いでしょう。
最近ではSWELLの開発も停滞気味で、SWELLのフォーラムにも作者が出てこなくなって久しいのですが、SEO SIMPLE PACKプラグインが公開停止になっていました。
このプラグインの公開は2024年6月21日に停止されており、ダウンロードできません。 この公開停止は一時的なもので、完全なレビューを待っている状態です。
SEO SIMPLE PACKは国産で不要な機能がついてないので軽量なのが魅力です。
同じように軽量なSEOプラグインとしてThe SEO Frameworkがあります。
どちらも有効インストール数は100,000+なので、同じぐらいの人気です。
The SEO Frameworkは海外製で日本語化されていないのですが、開発元のベンチマークだと有名どころのSEOプラグインと比べて一番軽量だと言っています。
SEO SIMPLE PACKからの乗り換え候補としてはThe SEO Frameworkは選択肢の一つになります。
ただ、SEO SIMPLE PACKを単純にThe SEO Frameworkに置き換えようとすると、The SEO Frameworkには以下の機能があるので機能を無効化する必要があります。
- XML Sitemapを生成(設定で無効化できる)
- robots.txtを生成(設定で無効化できない)
- 構造化データ出力(設定で無効化できる)
The SEO Frameworkのrobots.txt出力を止める
The SEO Frameworkのrobots.txt生成は設定から停止できません。
他のプラグインでrobots.txtを生成している場合は、機能がぶつかるので不具合が起きます。
XML Sitemap & Google Newsプラグインはrobots.txtを生成しますが、The SEO Frameworkと同時に使うと、robots.txtが上書きされてしまいます。
フォーラムにrobots.txtを生成しないスニペットを発見
The SEO Frameworkのフォーラムの過去投稿でrobots.txtの生成を止めるスニペットが紹介されていました。
add_action(
'the_seo_framework_after_init',
function() {
remove_filter( 'robots_txt', [ tsf(), 'robots_txt' ] );
}
);
引用元:https://wordpress.org/support/topic/disabling-a-file-robots-txt/
このスニペットをfunctions.phpに貼り付けましたが、残念ながら動きませんでした。
2年前の投稿なので、プラグインのコードが変わってしまったのかもしれません。
現在のソースコードを確認してみます。
// Overwrite the robots.txt output.
\add_filter( 'robots_txt', [ RobotsTXT\Main::class, 'get_robots_txt' ], 10, 2 );
フォーラムの投稿とcallback関数が違うので、remove_filterが動かないのだと判明しました。
あまり見かけないcallback関数の書き方で混乱しますが、配列はコールバック関数を指定するためのものであり、最初の要素はクラスまたはオブジェクト、2番目の要素はメソッド名を示します。
RobotsTXT\Main::class
は、RobotsTXT\Main
クラスの完全修飾名を取得する特殊な構文です。この構文は、クラス名を文字列として取得するために使用されます。
'get_robots_txt'
は、クラスのメソッドを指定するための文字列です。
robots.txtの生成を止めるスニペット
remove_filterの部分は正しくは以下のように記述することでrobots.txtを出力しないようにできます。
WordPressの remove_filter 関数は、クラス名を文字列として受け取るため、::class 構文は必要ありません。
add_action(
'the_seo_framework_after_init',
function() {
remove_filter( 'robots_txt', [ 'The_SEO_Framework\RobotsTXT\Main', 'get_robots_txt' ], 10, 2 );
}
);
まとめ
The SEO Frameworkはフックが大量に仕込まれているので、使いこなせれば複雑なこともできます。