SEO・アフィリ・PHPに関するブログ -2ページ目

PHPでサイトのタイトル、キーワード、description文の取得

    //=-=-=-=-=-=-=-=-=-
    //=-タイトルの取得-=
    //=-=-=-=-=-=-=-=-=-
    $html = file_get_contents($url);
    mb_language("Japanese");
    $html = mb_convert_encoding($html, "SJIS", "auto" );
    preg_match( "/<title>(.*?)<\/title>/i", $html, $matches);
    $info['title'] =  $matches[1];

   
    //━━━━━━━━━
    //┃メタタグ情報取得┃
    //━━━━━━━━━
    $meta = get_meta_tags($url);
   
    //=-=-=-=-=-=--=
    //=-キーワード-=
    //=-=-=-=-=-=--=
    $keywords = $meta['keywords'];
    $keywords = mb_convert_encoding($keywords, "SJIS", "auto" );
    //キーワードを切り分けて配列にセット
    $info['keywords']    = explode(",", $keywords);
    //キーワード前後の空白削除
    for ($i = 0; $i < count($info['keywords']); $i++) {
        $info['keywords'][$i]    = trim(mb_convert_kana($info['keywords'][$i], "s"));
    }


    //=-=-=-=-=-=--=-=-
    //=-description文-=
    //=-=-=-=-=-=--=-=-
    $info['description'] = $meta['description'];
    $info['description'] = mb_convert_encoding($info['description'], "SJIS", "auto" );
   


実行PHPファイルがUTF-8の場合は赤文字のSJISをUTF-8に変更
キーワードは二次配列になっているので注意

404エラーページを作成する

先日ウェブマスターツールからこんなお達しが来た

ソフト 404 エラーが増えています
404(ページが見つかりませんでした)エラーを返すはずなのに返さない URL が大幅に増えています。

推奨される対処方法

    ウェブマスター ツールの [クロール エラー] ページを確認します。
    存在しないページに対するリクエストへの応答には、404(見つかりませんでした)または 410(存在しません)のレスポンス コードを常に返すことをおすすめします。
    404 レスポンス コードを返す際、独自の 404 ページを表示するようにサイトを設定すると、ユーザー エクスペリエンスを向上させることができます。


そのサイトでは、データーベースに記事内容をいれていたのだが、諸事情によりデータベースの中の古い記事を削除したのだ。
そして、古い記事ページを表示した時には、「記事が見つかりませんでした。」としか表示していなかった。
正直まだ時間がなく力をいれているサイトではなかったので放置していたのだが、きちっと古い記事にもクローラーがいっていたみたいで6000以上がソフト404と判断されていた。

【対処方法】
1.404ページだと認識させる
とりあえず、「記事が見つかりませんでした。」だけでは駄目!
404ページとみなされるように、PHPで

header("HTTP/1.0 404 Not Found", true, 404);

と表記する。
これにより、グーグルにこのページは404だと認識させる。

2.404用のページを作成する
内容に関しては
404 ページのカスタマイズ
パンダアップデート対策のために質の高いカスタム404ページを作成しよう
エラーページテンプレート
この辺を参照。

3..htaccessに404ページにアクセスされたら、2.で作成した404専用ページへリダイレクトするように記述する
記述内容は

ErrorDocument 404 http://XXX.com/404.html

でOK!!!!


あとはウェブマスターツールで404と認識されているURLをたたいて、ちゃんと404専用ページへ飛ぶかどうか確認する。


MYSQLの時間検索

★★先月のデータを抽出★★
$sql = "SELECT * FROM テーブル名 WHERE DATE_FORMAT(CURDATE(),'%Y-%m-01') - INTERVAL 1 MONTH AND DATE_FORMAT(CURDATE(),'%Y-%m-01') - INTERVAL 1 DAY";

★★今月のデータを抽出★★
$sql = "SELECT * FROM テーブル名 WHERE logDate >= date_format(now(),'%Y-%m-01')";
logDateが時間のフィールド名