タグ検索:web制作 , 高速化

2024/6/11に名駅のコワーキングスペース ベースキャンプ名古屋で開催された「a-blog cms 勉強会 in 名古屋 2024/06」に参加してきました。
a-blog cms勉強会は毎月定期的に開催されており、普段からa-blog cmsをヘビーユースされているビジネスパートナーの方や、まだ始めたばかりの初心者の方、そしてa-blog cms開発会社のアップルップル社の皆さんなど、多くの参加者で一緒にa-blog cmsを学んでいます。a-blog cms周りの話題はもちろん、最近のWebのトレンドなどのお話も出ますのでいつも大変勉強になっております。

a-blog cms Ver. 3.1.17 リリースのお知らせ

まず最初の話題としましては、新しくリリースされた3.1.17のリリース情報のお知らせがありました。
詳細は「a-blog cms公式サイトのデベロッパー情報」をご確認いただければわかりますが、新機能と変更点のあった項目の中から、時に個人的に嬉しかったポイントをピックアップしてご紹介します。

新機能

  • CMS-6808 メディア作成・更新時のHookを新しく追加(saveMedia)
  • CMS-6814 エントリーの複製時にカスタムフィールド、カスタムユニット、ユニットに保存されたファイル名をランダムにするかをカスタマイズするオプション(entry_duplicate_random_filename)を config.system.yaml に追加
  • CMS-6827 子ブログを含んだ初期インストールが出来る仕組みを用意
  • CMS-6824 Google検索に対してサイト名を指定するWebSite構造化データを追加
  • CMS-6842 インストーラーでデータベースの照合順序を選択できるように修正

変更点

  • CMS-6804 CMSで作成するファイル・ディレクトリのパーミッション設定をconfig.server.phpで設定するように変更
  • CMS-6840 Ajaxによる部分テンプレートアクセスにCSRFトークンによる認証を追加し、許可するtpl指定(allow_tpl_path)を個別指定しなくてもいいように改修 & Ajaxリクエストのセキュリティレベルオプションを用意(ajax_security_level)

個人的に嬉しかった推しのポイント

「CMS-6824」はGoogle検索結果での表記の指定に関わりますので、日頃からSEOを気にされている方には嬉しい機能になると思います。
また、「CMS-6842」は絵文字を使う際に指定する「utf8mb4」がインストール時から選べる様になったことで、後からデータベースを変更する手間が減るためとても便利になりそうです。

実は個人的に一番嬉しかったのが変更点「CMS-6840」です。先日こちらのブログ(a-blog cmsにhtmx(jsライブラリ)を実装してみました)でも紹介しましたが、今回こちらの仕様変更により、今まで以上にセキュアで簡単にhtmxの実装が可能になりました。htmxにはとても可能性を感じておりますので、a-blog cms + htmxが使いやすくなることは非常に嬉しいです。

勉強会に参加された皆さんの質問・疑問にお答えするコーナー

リリース情報の後は、勉強会に参加された皆さんが持ち寄った質疑応答のコーナーでした。
普段作業されているなかで解決ができなかったことや、作業の進め方の意見交換など、実際に作業をされている方々だからこそ抱えているお悩みなどを意見交換しながら解決していきました。

僕は利用歴が長いので知っている事もありましたが、長く使っていてもまだまだ知らない事や、使う機会がなくて忘れていた機能もあり勉強になりました。特に普段触ることの少ないプロフェッショナルライセンスの機能などは、こういった機会がないと画面をみながら情報交換することは難しく感じていますので、とても有意義な時間でした。

最後に

今回もとても勉強になり、有意義な時間でした。
参加された皆さま、そしてアップルップルの皆さま、本当にありがとうございました。

冒頭にもお話ししましたが、a-blog cmsの勉強会は定期的に開催されております。
特に名古屋にはa-blog cmsの開発会社であるアップルップルさんがありますので、実際に集まり開発されているスタッフの皆さんやビジネスパートナー・ユーザーの皆さんと、対面でお話をしながら勉強が出来ます。普段抱えている悩み等や疑問も相談する事ができますし、こんな機能があったら嬉しいなどもお話しできます。名古屋まで参加ができない方に向けに、他のエリアでも勉強会が開催されておりますし、オンラインでも開催されております。

a-blog cmsは大変素晴らしいサポート体制が整っておりますが、これはアップルップルの皆さんの運営なくしてありえないので、とてもとても感謝しております。(ここ大事なところ!)

a-blog cmsの利用を予定されている方や、これから勉強されたい方など、a-blog cms勉強会に参加されてみてはいかがでしょうか?ぜひ国産のcmsの良さを体験してみてくださいね。これからもa-blog cmsが今まで以上に盛り上がっていくと嬉しいので、興味がある方は一緒に勉強しましょう。

【a-blog cms勉強会の詳細はこちらから】
a-blog cms イベントスケジュール
名駅のコワーキングスペース ベースキャンプ名古屋


数ヶ月前からSEOで「Web制作 名古屋」で上げてみようと思い色々やりまして、やはり少し時間は掛かりましたが、こちらの1つのエントリー(名古屋の制作会社として15年になります)で今朝(2024/6/9現在)で13位くらいまで上がってきました。10位以内には入れたいなと思いますが、「Web制作 名古屋」はボリュームのあるキーワードなので現状でも結構うれしいです。

「Web制作 名古屋」で検索順位を改善する為におこなった対策

何をやったかですけど、地味な作業ですが「Lighthouse」を使ったCore Web Bitalsの改善、サイト内の表記などの見直し、そしてブログエントリーを計画的に書く、Seach Consoleを見て細かく調整や改善、そして最後にサイト監査ツールを導入して各所チェックし、現状把握と見直しできるところを随時潰していった感じです。

「ホームページ」などの表記は「Webサイト」に統一し、表記の揺らぎを無くしています。この場合「ホームページ制作 名古屋」で検索順位が下がるのでは?と思う方もいるかもしれませんが、現在「ホームページ制作 名古屋」では28位くらいにいますので、同じ意味のキーワードであればGoogleがある程度判断して順位に反映している思われます。

ただ、Core Web Bitals は一度改善しましたが、このエントリーを書く前に、先日トップに動画を入れたので今の数値は下がりました。これが検索結果にどう出るかはまだこれからなので、こちらは注意してみていく予定です。
あと改善すれば数値は良くなりますが、これってどうなの?という部分はあえて対策していない箇所もあります。(Core Web Bitalsの結果は重視したいが、色々表現出来ないと面白くないので…)

サイト内でのキーワード表記の考え方

サイト内のキーワード表記に関しては基本的にはGoogleを信じて、不誠実はことはしていません。表記はしっかりと狙ったものにして、必要であればそのワードに添った内容をその都度書いています。
Googleは検索ユーザーの検索クエリ(問い)に対して検索結果から最適なページ(答え)を提供したいだけなので、問いを想定して答えのページを用意します。その問いが検索上位に上げたいキーワードであれば良いので、あとはその答えのパターンを増やしていけば良いと思います。

目的のキーワードに対してエントリーを書けば、自然にそのキーワードの周囲にあるサジェスト的な内容のキーワードも文章に含まれてきます。重要な内容に対してはきちんと見出しを設定して、その項目に対して詳しく書く配慮はしています。

文章が不自然になる様なことはしていません。
「検索ユーザーが好まないエントリーはGoogleも嫌うでしょう」という判断です。

サイト監査ツールの導入

サイト監査ツールは1ヶ月ほど前に導入しましたが、これがサイトの状態を知るには結構便利です。もし弊社のお客様が導入されたい場合は有料ですがご提案もできます。(監査ツールにはまだ数枠空きがあるので先着になります)
特に外部施策としてリンク貼ったりなど何かあるわけではないので、このツールは導入するだけでは効果はないのですが、指標になりますのでかなり役に立ちます。

導入される場合は弊社からのレポートだけになります。管理ページは提供できませんのでご了承ください。
ただ、直接ツールをご購入いただければ管理ページも提供されますので、本格的にご利用される場合は、高価になりますがツールをご購入された方が良いかもしれません。

※弊社が何のツールを導入しているかはここでは触れません。ご了承ください。

競合サイト調査の必要性

上記の監査ツールを導入すると競合サイトの調査なども可能です。
競合調査をすると上位サイトはかなりのページ量のコラムやブログを持っていることが多く、それはサイトをパッとみただけでは分からない場合が多いです。「なぜ上位サイトに勝てないのか」を紐解き、実際の競合サイトの規模を知ると「ああ…だから上位なのか」となることも多いです。

ただ競合サイト調査から競合サイトの流入ページや流入キーワードがわかりますので、そちらを参考にしてより充実したエントリーを作り、さらなる上位を目指すなどもできると思います。逆に競合サイト調査をしないと分からないことも多いと思います。

最後に

現状上位に上がっているのは、1つのブログエントリーですが、こういう上位に食い込むエントリーが複数作れる様になると、後々ドメインとしてこのキーワードに強くなりますので、内部リンクの貼り方でトップページを上位にすることもできると思います。

SEOは基本的に「ちゃんとサイト運営していれば気にしなくていい派」でしたが、狙って運営すれば効果が出ますので、今では「目的を持って計画的に運営すれば気にしなくていい派」になりました。日本規模で争う様な超ビッグワードだとそんな簡単ではないんでしょうけど、地域性を含むならキーワードでしたら、ある程度は上位に上げることも可能だと思います。

SEOには専門的なWebマーケティングやSEOの会社がありますので、Webに関わる会社も今は細分化されております。ただWeb制作会社にも出来ることは沢山ありますので、ぜひSEOにお困りの方は、まずはWebサイトを制作されている制作会社さんに相談されてみてはいかがでしょうか。


Web制作に役立つa-blog cmsの小粒な Tips をご紹介します。
今回はキャッシュ操作を便利にする小ネタです。

a-blog cmsではWebサイトの表示を高速化するために非常に高機能なキャッシュ機能が実装されています。
公開ページだけではなくログイン後のページでもキャッシュ(一度表示したページを一時的に保存しておく仕組み)が機能するため、Webサイトの構築・ページ追加・編集などの作業もストレスなく操作ができ大変使いやすくなっています。

ただ、このキャッシュは便利な反面、ページを更新してもキャッシュが効いて画面に反映されず確認ができないことがあります。もしページがキャッシュして更新内容が反映されない場合は、「管理ページ」のダッシュボードでキャッシュをクリアすることができます。

しかしキャッシュをクリアするために、毎回「管理ページ」へ移動するのは少し手間がかかります。そこで今回はログイン後のページに表示される「管理ボタン」の下に、キャッシュをクリアするボタンを追加してみます。

a-blog cmsのキャッシュクリアボタン実装例


実装はすごく簡単で、以下のコードを利用しているテンプレートに貼り付けるだけです。(a-blog cms ver 3.1.13 時点)
コードの表示権限は、ログイン中かつユーザー権限が「投稿者」以上になります。

実装方法とサンプルコード

■インクルード元
コードは少し長いので是非別ファイルにしてインクルードでご利用ください。

<!-- インクルード例 -->
@include("/include/cacheclear.html")

■ cacheclear.html
今回のブログネタ用にコードをコピペで済む様に、一部の css はインラインで記述しております。
この辺りは貼り付ける場所などもありますので、お好みで手直ししていただければと思います。
またスマホ時の表示対策は何もしていないので、自由にカスタマイズしてみてください。

<!-- キャッシュクリア用 cacheclear.html -->
<!-- BEGIN_MODULE Touch_Login -->
@section("dashboard-clear-cache")
<!-- BEGIN_MODULE Touch_SessionWithCompilation -->
<div id="adminBox" class="clearfix js-dragAdminBox_disable normalBox">
<form action="" method="post">
	<table class="clearfix js-dragAdminBox_disable normalBox" style="border:none;margin:0;padding:0;font-size:13px;">
	<tbody>
		<tr>
			<td>
				<div class="acms-admin-form-checkbox">
				<input type="checkbox" id="input-checkbox-cashe-page" name="target[]" value="page" checked />
				<label for="input-checkbox-cashe-page" style="font-weight: normal;"><i class="acms-admin-ico-checkbox"></i><!--T-->ページ<!--/T--></label>
				</div>
				
				<!-- BEGIN_MODULE Touch_RootBlog -->
				<div class="acms-admin-form-checkbox">
				<input type="checkbox" id="input-checkbox-cashe-template" name="target[]" value="template" checked />
				<label for="input-checkbox-cashe-template" style="font-weight: normal;"><i class="acms-admin-ico-checkbox"></i><!--T-->テンプレート<!--/T--></label>
				</div>
		
				<div class="acms-admin-form-checkbox">
					<input type="checkbox" id="input-checkbox-cashe-config" name="target[]" value="config" />
					<label for="input-checkbox-cashe-config" style="font-weight: normal;"><i class="acms-admin-ico-checkbox"></i><!--T-->コンフィグ<!--/T--></label>
				</div>
				
				<div class="acms-admin-form-checkbox">
					<input type="checkbox" id="input-checkbox-cashe-field" name="target[]" value="field" />
					<label for="input-checkbox-cashe-field" style="font-weight: normal;"><i class="acms-admin-ico-checkbox"></i><!--T-->カスタムフィールド<!--/T--></label>
				</div>
				
				<div class="acms-admin-form-checkbox">
					<input type="checkbox" id="input-checkbox-cashe-module" name="target[]" value="module" />
					<label for="input-checkbox-cashe-module" style="font-weight: normal;"><i class="acms-admin-ico-checkbox"></i><!--T-->モジュール<!--/T--></label>
				</div>
				
				<div class="acms-admin-form-checkbox">
					<input type="checkbox" id="input-checkbox-cashe-temp" name="target[]" value="temp" />
					<label for="input-checkbox-cashe-temp" style="font-weight: normal;"><i class="acms-admin-ico-checkbox"></i><!--T-->一時的なデータ<!--/T--></label>
				</div>
				<!-- END_MODULE Touch_RootBlog -->
				
				<div style="position: relative;display: inline-block;">
					<input type="hidden" name="field[]" value="target" />
					<input type="submit" name="ACMS_POST_Cache" value="<!--T-->キャッシュをクリア<!--/T-->" class="acms-admin-btn-admin"/>
					<input type="hidden" name="forcing" value="true" />
				</div>
			</td>
		</tr>
	</tbody>
	</table>
</form>

</div>
<!-- END_MODULE Touch_SessionWithCompilation -->
@endsection
<!-- END_MODULE Touch_Login -->

ということで、a-blog cmsに便利な小ネタでした。

最後に

弊社がなぜa-blog cmsを愛用しているのか、a-blog cmsの特徴やメリットとは。
a-blog cmsをお勧めする理由につきましてはこちらのページをご覧ください。
a-blog cmsをお勧めする理由


XSERVERのXアクセラレーター Ver.2が、Ver.2.1にバージョンアップしたようです。

Xアクセラレーターの設定は、「OFF」「Ver.1」「Ver.2(Ver.2.1のこと)」の3つから選べますが、
公式サイトの情報によると、

  • Ver.1:静的ファイルの高速化と同時アクセス数の拡張が行われます。
  • Ver.2:「Ver.1」の特徴に加えて、PHPプログラムが高速化されます。

普段はVer.1を使っていますので、新しくなったVer.2をa-blog cmsで試してみようと思ったのですが、残念ながら「ioncube loader」の部分でエラーになりました。

Site error: the ionCube PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking. Please visit get-loader.ioncube.com for install assistance.

エラーの内容的には「ioncube loaderをインストールしてください」という感じですが、すでにPHPに合わせたものが設置済みで、Xアクセラレータ Ver.1では動作しています。もしかしたらVer.2では「ioncube loader」自体が使えないのでしょうか。

でも「PHPが従来の10倍以上高速!」とか聞くと、どうしても使いたくなります…。
Ver.2の方はPHPの設定も制限があるようですが、何とかして動かす方法ないんでしょうかね。
ひとまずVer.1を継続ですが、今後に期待したいと思います。

2019/8/2 追加:
現在この件についてXSERVERに問い合わせ中ですので、また返答あり次第報告したいと思います。

2019/8/6 追加:
XSERVERより返答いただきましたが、Xアクセラレーター Ver.2はphpの設定により、ioncube loaderは動作不可という事でした。現時点ではver.1を利用してくださいとのことです。ただ、ユーザーからの要望という事で、今後の検討材料にはしていただける様です。非常に丁寧な対応をしていただけたので、今回の結果は残念でしたが好印象でした。今後に期待したいと思います。